voglio usare il multithreading nel mio mmorpg in C++, Ive ha ottenuto 5 discussioni in questo momento, e voglio dividere un altro a due, ma i miei conists del server mmorpg di carichi di vettori, e perché i vettori non sono sicuri da scrivere, non posso farlo correttamente.multithreading in C in un mmorpg
c'è un'alternativa all'utilizzo di vettori attraverso i thread, o c'è un modo per rendere il vettore di lettura/scrittura multithread sicura.
Ecco un esempio di cosa non voglio, provare a trovare un'alternativa a qualcosa di simile: Ovviamente questo non è un codice reale, sto solo facendo un esempio.
//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 >.<
Grazie, puoi spiegare come usare questo e come funziona? :) –
Si prega di dare un'occhiata a: http://en.cppreference.com/w/cpp/thread/lock –
Questo non funzionerà molto bene. Perché stai bloccando l'intero array. Quindi, mentre puoi avere più thread - saranno tutti in attesa l'uno dell'altro per accedere al vettore. Quindi le operazioni sul vettore avranno le stesse caratteristiche di prestazioni come se fossero in un singolo thread. –