这次写的线程的同步与互斥,不依赖于任何系统,完全使用了C++11标准的新特性来写的,就连线程函数都用了C++11标准的lambda表达式。

/*
 * thread_test.cpp
 *
 * Copyright 2013 叶剑飞
 *
 * 编译命令:
 *     g++ thread_test.cpp -o thread_test -Wall -std=c++11 -pedantic-errors -pthread
 */

#include <iostream>
#include <cstdlib>
#include <thread>
#include <mutex>
#include <chrono>

using namespace std;

int main(void)
{
    const int n = 50;
    const long t = 500;
    mutex m;
    thread thread1( [&m,n,t](void)->void
    {
        for ( int i=0; i < n; ++ i )
        {
            m.lock();
            cout << "Thread one." << endl;
            m.unlock();
            this_thread::sleep_for(chrono::milliseconds(t));
        }
    });
    thread thread2( [&m,n,t](void)->void
    {
        for ( int i=0; i < n; ++ i )
        {
            m.lock();
            cout << "Thread two." << endl;
            m.unlock();
            this_thread::sleep_for(chrono::milliseconds(t));
        }
    });
    thread1.join();
    thread2.join();
    return EXIT_SUCCESS;
}

 

相关文章:

  • 2021-07-08
  • 2022-12-23
  • 2021-11-07
  • 2021-07-15
  • 2022-12-23
  • 2021-11-18
  • 2021-09-11
  • 2021-12-08
猜你喜欢
  • 2021-07-15
  • 2022-01-22
  • 2021-08-13
  • 2022-12-23
  • 2021-05-04
  • 2021-10-11
  • 2022-12-23
相关资源
相似解决方案