兩個執行緒對乙個變數進行 操作,直至變數值為20

2021-06-25 18:25:12 字數 454 閱讀 8874

兩個執行緒對乙個變數進行++操作,先是執行緒a進行++,然後是執行緒b進行++,再是a,b,依次執行,直至變數值為200.

設定函式引數來區分執行緒a,b。

設定全域性變數n來控制線程的執行順序。

注意:num是共享的,設定為全域性變數。如果把它放在func函式中,則表示執行的次數。即num是每個執行緒所私有的

#include #include #include #include #include pthread_mutex_t mutex;

pthread_cond_t cond;

int n=0;

int num=0;

void *func(void *arg)

return 0;

}int main(int argc, char** argv)

兩個執行緒輪流對乙個全域性變數執行加1操作並且列印

最近在看多執行緒程式設計,想起以前有個 面試出的題目,今天就寫了下,主要是利用互斥變數和條件變數,主線程先執行,然後通知子執行緒執行,輪流執行 操作,並且列印,如下 include include include using namespace std int num 0 pthread mutex...

兩個棧模擬乙個佇列 兩個佇列模擬乙個棧

解題思路 插入操作在stack1中進行,刪除操作在stack2中進行,如果stack2為空,則將stack1中的所有元素轉移到stack2中。include include includeusing namespace std template class cqueue 建構函式 template ...

兩個棧實現乙個佇列 兩個佇列實現乙個棧

這兩個題的思路比較相似。棧的特點是 先進後出 佇列的特點是 先進先出 不要怕!用兩個棧實現乙個佇列很簡單 再將top元素push到stack 2中,然後將stack 1 pop一次直到stack 1剩下最後乙個元素,這個就是最先push進去的,我們把它pop掉就可以了,同理,我們求queue的fro...