用c++或c如何让所有的线程都执行完再执行下面的语句
1个回答
展开全部
简单来弄的话,可以弄一个全局变量
volatile int counter=0;
然后每个线程需要等待的地方都写如下语句
counter++;
while(counter!=线程总数){}
如果想在弄复杂一点可以上网搜搜“线程同步”
volatile int counter=0;
然后每个线程需要等待的地方都写如下语句
counter++;
while(counter!=线程总数){}
如果想在弄复杂一点可以上网搜搜“线程同步”
追问
为什么我用了两个线程去增加单位时间的模拟次数,但是实际上模拟次数反而降了
追答
这个跟线程内容有关系的,因为多线程运行在许多时候实际是几个线程轮流执行(而不是真正意义上的同是执行)尤其比如说涉及到硬盘读写操作时,一个线程操作另一个线程就会等待,这样下来多线程的速度不一定比单线程高
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询