A Simple Code to Show Concurrence Using std::thread with Thread Header in C++
测试程序:
// thread example
#include <iostream> // std::cout std::cin
#include <thread> // std::thread
void foo()
{
// do stuff...
for(int i = 0; i < 100; ++i)
{
cout << "foo() i: " << i << "\n";
}
}
void bar(int x)
{
// do stuff...
for(int j = x; j < 200; ++j)
{
cout << "bar() j: " << j << "\n";
}
}
int main()
{
std::cout << "main, foo and bar now execute concurrently...\n\n";
std::thread first(foo); // spawn new thread that calls foo()
std::thread second(bar, 100); // spawn new thread that calls bar(0)
// synchronize threads:
first.join(); // pauses until first finishes
second.join(); // pauses until second finishes
std::cout << "foo and bar completed.\n\n";
std::cin.get();
return 0;
}
测试结果:
实验分析:
可以看到每次的结果都是在“
foo() i:
”
、
i
、以及“
\n
”
之间进行分隔,所以这是巧合,还是他们都属于元操作,不可分割
?
与大家分享这个用
C++
实现的多线程编程。程序很简单,但是很能说明问题,可是当作一个入门程序。
参考资料:
www.cplusplus.com
Constructive comments and reports of errors are always welcome.
Written by Josan.
2016/12/20
本文提供了一个使用C++标准库`std::thread`实现的多线程程序示例,通过创建两个线程分别执行foo()和bar()函数。在主函数中同步线程,并展示并发执行的效果。程序简单易懂,适合作为C++多线程入门学习。
1406

被折叠的 条评论
为什么被折叠?



