c++boost条件変数
899 ワード
プログラムの説明:1を入力します:すべてのスレッドを起動します;入力0:保留中のスレッド
//g++ main.cpp -lboost_system -lboost_thread -lpthread -std=c++11
#include
#include
#include
using namespace std;
boost::condition_variable cond1; //
boost::condition_variable cond2; //
boost::mutex bmutex1; //
boost::mutex bmutex2;
static int add = 0;
queue q; //
static int input = 0;
void inputQueue()
{
boost::unique_lock<:mutex> lock(bmutex2); //
q.push(add);
lock.unlock(); //
cond2.notify_all(); //
usleep(500*1000);
cout< lock(bmutex2);
if(q.empty()){
cout< lock(bmutex1);
while(input == 0) {
cout< lock(bmutex1);
while(input == 0) {
cout<>input;
switch (input) {
case 1:
cout<