Ho una domanda in cui un soggetto viene aggiornato in un thread diverso ogni volta. Quindi, ogni volta che il soggetto viene aggiornato, aggiorna corrispondentemente l'osservatore con le nuove informazioni. Tuttavia, se l'elenco degli osservatori è lungo, sarà necessario del tempo per aggiornare tutti gli osservatori. Pensa a un argomento che viene aggiornato molto frequentemente. Mentre il soggetto sta aggiornando gli osservatori, l'oggetto "oggetto" è bloccato e quindi non può essere aggiornato da un thread diverso. Ciò creerà traffico di informazioni per oggetto o causerà la perdita di informazioni.multithread Observer modello
Avete qualche idea di come questi problemi vengono gestiti in un ambiente multi-threaded? Inoltre, qualcuno può consigliare alcuni libri sulla programmazione parallela con C++?
si tratta di una questione teorica? perché potrebbero esserci altre soluzioni per il tuo problema che non implicano l'uso dei cosiddetti 'pattern'. – INS
soggetto non ha bisogno di essere "bloccato" se le informazioni che detiene non cambia durante l'aggiornamento degli osservatori o la modifica non ha alcuna conseguenza. Pensa a un file di sola lettura come esempio. Per quanto posso pensare, Multi-threading non risolverà il problema se ho capito bene il tuo punto.Anche altri thread potrebbero aspettare fino a quando il soggetto non sarà di nuovo disponibile e non tornare dopo un timeout e non ci sarebbe alcuna "perdita di informazioni" ma ciò dipende dal contesto che è difficile immaginare dalla quantità di informazioni che hai fornito nella descrizione di il tuo problema. – Barracuda