首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

线程函数解决办法

2013-04-21 
线程函数void* dosomething(void *arg){步骤1步骤2步骤3核心步骤{核心步骤1核心步骤2.。。}...}for(int i0

线程函数
void* dosomething(void *arg)
{
步骤1
步骤2
步骤3
核心步骤
{
核心步骤1
核心步骤2.。。
}
...
}

for(int i=0;i<n;i++)
{
pthread_create(...dosomething...);
}

这样,会开好多个线程来执行好多个dosomething,

各个线程里的dosomething里的代码执行顺序是杂乱的,第1个dosomething刚执行完步骤1,第2个dosomething,就执行了步骤1,然后第1个dosomething又执行了步骤2。。。

现在的需求是,每个dosomething里的步骤1、2、3这些,执行顺序可以乱,但是,核心步骤里的代码,必须是一个dosomething执行完,再允许另一个dosomething执行,但是允许先执行dosomething2里的核心步骤,后执行dosomething1里的核心步骤,也可以。
[解决办法]
需要互斥锁同步一下吧
[解决办法]

引用:
需要互斥锁同步一下吧
+++1
[解决办法]
一把锁就解决了。
[解决办法]
核心步骤外面包一层控制,即互斥锁
[解决办法]
lock()
{
核心步骤1
核心步骤2.。。
}
unlock()

热点排行