boost:thread2

来源:互联网 发布:制作动漫软件下载 编辑:程序博客网 时间:2024/06/15 02:32

 

#include <iostream>
#include <fstream>
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>

void wait(int seconds)
{
    boost::this_thread::sleep(boost::posix_time::seconds(seconds));
}
boost::mutex mutex;
boost::condition_variable_any cond;


void test_wait()
{
    std::fstream outFile("D:/time.txt",std::ios_base::out);
    while(true)
    {
        boost::mutex::scoped_lock lock(mutex);
        cond.wait(mutex);
        std::cout<<boost::this_thread::get_id()<<" 收到notify!\n";
        outFile<<boost::this_thread::get_id()<<" 收到notify!\n";
    }
    outFile.close();
}

void main()
{
    boost::thread t1(test_wait);
    boost::thread t2(test_wait);
    boost::thread t3(test_wait);
    boost::thread t4(test_wait);

    int cnt = 0;
    while (true)
    {
        wait(1);cnt++;
        cond.notify_one();
        if ( cnt == 50 )
            break;
    }
    system("pause");
}

 

output

00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
00448138 收到notify!
004480A8 收到notify!
004480A8 收到notify!

0 0