c++ 并发编程

来源:互联网 发布:油菜花粉 知乎 编辑:程序博客网 时间:2024/06/06 21:29

一 生产者消费者:

    

std::mutex mu;deque<int> q;condition_variable CR;void produce(){int count = 10;while (count>0){unique_lock<mutex> lock(mu);cout << " product 生产了" << count << endl;q.push_front(count);lock.unlock();CR.notify_all();Sleep(1);count--;}}void consume(){int data = 0;while (data!=1){unique_lock<mutex> lock(mu);CR.wait(lock, [](){return !q.empty(); });data = q.back();q.pop_back();lock.unlock();cout << "consumer got a value from product" << data << endl;}}int main(){thread T1(produce);thread T2(consume);T1.join();T2.join();}
二 循环打印ABC

   

std::mutex mu;void A(){for (int i = 0; i < 10; i++){lock_guard<mutex> lock(mu);cout << 'A';Sleep(10);}}void B(){for (int i = 0; i < 10; i++){lock_guard<mutex> lock(mu);cout << 'B';Sleep(10);}}void C(){for (int i = 0; i < 10; i++){lock_guard<mutex> lock(mu);cout << 'C';Sleep(1);}}int main(){thread T1(A);thread T2(B);thread T3(C);T1.join();T2.join();T3.join();}

   

原创粉丝点击