当前位置:  开发笔记 > 编程语言 > 正文

C++加入多个线程

如何解决《C++加入多个线程》经验,为你挑选了1个好方法。

我想做一个for循环,创建更多的线程.

我尝试过:

int i;
for (i = 0; i < 10; i++) {
    thread t1(nThre);
    t1.join();
    cout << "Joined thread n'" << i << '\n';
}

但它不起作用.nThre顺序调用(这是一个简单的void例程).

我还询问我是否可以使用预增的i只是一个int,所以: ++iinsted的的i++,这应该是更好的性能.



1> tforgione..:

您的问题是您启动一个线程,并在开始下一个线程之前加入它.你应该这样做:

int i;
vector threads;

for (i = 0; i < 10; i++) {
    threads.push_back(thread(nThre));
    cout << "Started thread n'" << i << "\n";
}

for (i = 0; i < 10; i++) {
    threads[i].join();
    cout << "Joined thread n'" << i << "\n";
}

首先,启动所有线程,然后等待它们完成.

对于之间的区别i++++i,因为i是一个整数,它使这里没有什么区别.有关详细信息,请参阅此答案.


作为一般规则,您应该使用前缀,除非您需要postfix.
推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有