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<