刷野打怪上王者·C++篇·第22期·多线程处理

网友投稿 586 2022-11-17

刷野打怪上王者·C++篇·第22期·多线程处理

刷野打怪上王者·C++篇·第22期·多线程处理

参考链接

​​RUNOOB.COM​​

多线程处理

在电脑中可以进行多任务处理,其中多任务的处理方式分为两种:多进程和多线程。多进程是程序的并发执行;多线程是同一程序判断并发执行。

实例程序

#include #include #include #include #include #include void f1(int n) { for (int i = 0; i < 5; ++i) { std::cout << "Thread " << n << " executing\n"; std::this_thread::sleep_for(std::chrono::milliseconds(10)); //线程休眠一段时间 }}void f2(int& n){ for (int i = 0; i < 5; ++i) { std::cout << "Thread 2 executing\n"; ++n; std::this_thread::sleep_for(std::chrono::milliseconds(10)); //线程休眠一段时间 }}int main(){ int iPara = 0; std::thread thread1; // thread1不是线程 std::thread thread2(f1, iPara + 1); // 想函数内传递iPara + 1 std::thread thread3(f2, std::ref(iPara)); // 通过参考的方式传递值 std::thread thread4(std::move(thread3)); // thread4现在运行f2. thread3不在是线程 thread2.join(); thread4.join(); std::cout << "Final value of n is " << iPara << '\n'; getchar();}

运行结果

Thread Thread 2 executing1 executingThread 1Thread 2 executing executingThread 2 executingThread 1 executingThread 2 executingThread 1 executingThread 2 executingThread 1 executingFinal value of n is 5

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:刷野打怪上王者·C++篇·第17期·数据操作处理
下一篇:docker的学习之认识docker(一)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~