我想在我的mmorpg在C++中使用多線程,我現在有5個線程,我想拆分另一個在兩個,但我的mmorpg服務器包含載體的負載,因爲載體無法安全地書寫,我不能正確地做。在mmorpg中的多線程
是否有跨線程使用向量的替代方案,或者是否有方法使向量讀/寫多線程安全。
繼承人一個我想要的例子,試圖找到這樣的替代: 顯然這不是實際的代碼,我只是做一個例子。
//Thread1
//Load monster and send data to the player
globals::monstername[myid];//Myid = 1 for now -.-
senddata(globals::monstername[myid]);//Not the actual networking code, im just lazy.
//Thread2
//Create a monster and manage it
globals::monstername.push_back("FatBlobMonster");
//More managing code i cant be bothered inserting >.<
Thankyou,你能解釋一下如何使用它以及它是如何工作的? :) – 2012-07-26 13:33:23
請看看:http://en.cppreference.com/w/cpp/thread/lock – 2012-07-26 13:33:43
這不會工作得很好。因爲你正在鎖定整個陣列。所以,雖然你可以有多個線程 - 他們都將彼此等待訪問矢量。因此,向量上的操作將具有與在單個線程中相同的性能特徵。 – 2012-07-26 13:50:13