Tôi muốn sử dụng đa luồng trong mmorpg của tôi trong c + +, ive có 5 luồng tại thời điểm này và tôi muốn chia một chuỗi khác thành hai, nhưng máy chủ MMORPG của tôi phân phối các tải vectơ, và vì các vectơ không an toàn để viết, tôi không thể làm đúng.đa luồng trong c trong một mmorpg
Có cách nào khác để sử dụng vectơ trên các chủ đề hay không hoặc có cách nào để làm cho vectơ đọc/ghi đa luồng an toàn.
Đó là một ví dụ về những gì tôi không, hãy thử tìm một giải pháp thay thế cho một cái gì đó như thế này: Rõ ràng đây không phải là mã thực, tôi chỉ cần làm ví dụ.
//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 >.<
Xin cảm ơn, bạn có thể giải thích cách sử dụng và cách hoạt động của nó không? :) –
Xin hãy xem: http://en.cppreference.com/w/cpp/thread/lock –
Điều này sẽ không hoạt động tốt. Bởi vì bạn đang khóa toàn bộ mảng. Vì vậy, trong khi bạn có thể có nhiều chủ đề - họ sẽ được tất cả chờ đợi nhau để truy cập vào vector. Vì vậy, các hoạt động trên vectơ sẽ có các đặc tính hiệu suất giống như chúng nằm trong một chuỗi đơn lẻ. –