C++多线程编程,有没有方法让线程内的一些连续的语句一次执行完,在跳到...
发布网友
发布时间:2022-04-25 10:43
我来回答
共3个回答
热心网友
时间:2024-11-05 19:43
说实话,没用过锁不建议你这么干,用锁用不好会出问题的,
你可以用一个类似信号量的机制,一种思路。
假设有两个或者多个线程同时并发:
t1、t2、t3...........tn.....,假设t1就是那个要连续执行的线程,其他线程为t1完毕后在执行。
定义一个全局变量,可以是任意类型,就以bool 为例吧:
bool b = false,默认false
下面是关键,就是定义线程的起始方法:
f1、f2、f3..........fn......,假设f1是t1的方法
void t1()
{
...//这些都是执行过程
...//这些都是执行过程
b = true;//这个是方法的最后一句,通知其他线程,我已经执行完了,你们可以开始了
}
void t2()
{
while (!b)
{
//什么都不做,空循环,当b=true的时候,while终止
}
//以下才是真正的内容
....
....
}
void f3、f4...都与f1一致,目的就是等t1完全执行完毕后才执行他们
领悟这种思想了吗?
热心网友
时间:2024-11-05 19:43
不知道线程同步,信号量、互斥量,还搞个pi的多线程啊
热心网友
时间:2024-11-05 19:40
这个可以有,在你要执行的语句前加互斥锁mutex,执行后解锁,每个线程有冲突的地方都加