#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!