join
多個執行緒執行順序是亂的,跟作業系統內部對執行緒的排程機制有關。
主線程等待子執行緒執行完畢後才執行
void myprint(int item)
int main()
for (auto iter = mythread.begin(); iter != mythread.end(); ++iter)
cout << "hello world" << endl;
return 0;
}
資料共享問題分析
1.唯讀資料:安全穩定
2.有讀有寫:如果讀和寫一起執行,程式會崩潰。
不崩潰處理:最簡單的方法就是讀和寫分開。
但是如果任務一直切換的,可能會有詭異的事情發生(甚至可能崩潰)
共享資料的保護案例**:
網路遊戲伺服器。兩個自己建立的執行緒,乙個執行緒收集玩家的命令(用乙個數字代表玩家的命令)。乙個執行緒取出玩家的命令,並且執行玩家要幹的動作。
class a
} void outmsgrecquene()
else
}}};
int main()
程式會崩潰。 6 4建立多個執行緒 資料共享問題
a 多個執行緒執行順序是亂的,跟作業系統內部對執行緒的執行排程機制有關 b 主線程等待所有子執行緒執行結束,最後主線程結束,推薦使用這種join的寫法,更容易寫出穩定的程式 c 咱們把thread物件放入到容器裡管理,看起開像個thread物件陣列,這對我們一次建立大量執行緒並對大量執行緒進行管理很...
建立多個執行緒及資料共享問題
include pch.h include include include using namespace std void myprint int num int main for auto iter mythread.begin iter mythread.end iter std cout h...
6 多個執行緒的共享資料
1 方式 1,如果每個執行緒執行的 相同,可以使用同乙個runnable物件,這個runnable物件中有那個共享資料,例如,賣票系統就可以這麼做。2,如果每個執行緒執行的 不同,這時候需要用不同的runnable物件,例如,設計4個執行緒。其中兩個執行緒每次對j增加1,另外兩個執行緒對j每次減1,...