?? consumer.c
字號:
#define __THREADS_MAIN#include <thread.h>#include <threads/signal_num.h>#include <iostream>#include <string>extern "C" {# include <sys/wait.h># include <unistd.h>};using namespace std;using namespace cpp_threads;Cond t_control;Mutex t_link;string s;class producer : public Pthread {public: producer() { }; ~producer() { }; int thread(void *) { char *buf = new char[80]; cout << "Enter text for consumer: "; cout.flush(); cin.getline(buf,80); cout << "got '" << buf << "'\n"; t_link.lock(); s = buf; t_control.signal(); t_link.unLock(); delete buf; return 0; }};class consumer : public Pthread {public: consumer() { }; ~consumer() { }; int thread(void *) { int r; t_link.lock(); t_control.wait(t_link); cout << "Consumed: '" << s << "'\n"; r = s.length(); t_link.unLock(); return r; }};int main(){ Pthread* p1, *p2; p1 = new consumer; p2 = new producer; p1->run(); p2->run(); p1->join(); cout << "return value " << p1->retcode() << endl; delete p2; delete p1;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -