简单的多线程实例C++

来源:互联网 发布:湖北文理学院网络 编辑:程序博客网 时间:2024/05/16 10:19
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::threadvoid 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
0 0