|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
[C++] Problema su sezioni critiche e semafori
Ciao a tutti,
stavo esaminando un pezzo di codice che sembra dare problemi di prestazioni, e mi sono accorto che il problema sembra legato all'eccessivo uso di meccanismi di sincronizzazione (quali semafori, sezioni critiche, ...). Il codice in questione realizza due thread, che si parlano attraverso una coda. L'accesso ai metodi della coda (un vettore con dimensione massima prefissata) e' regolato da un semaforo, controllato all'interno di ogni metodo di questa coda. L'autore del codice ha messo ancora altri semafori e sezioni critiche anche alla chiamata dei vari metodi, scrivendo codice apparentemente sovrabbondante. Questo sembra causare un calo di prestazioni, oltre che un accumulo inaccettabile di messaggi nella coda, durante i periodi di maggiore attivita'. Prima di modificare questo codice, volevo documentarmi bene. Avete un'idea su come implementare, in maniera sicura, un meccanismo produttore-consumatore basato su di una coda? Come ottenere il massimo parallelismo possibile? Dove ottenere documentazione a riguardo? Ringrazio chiunque per qualsiasi suggerimento, anche quello di cambiare mestiere ![]() High Flying Sottovento |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2005
Città: Genova
Messaggi: 937
|
Le classiche ricerche in rete direi che fanno al caso tuo.
Ai tempi, a me erano statiutili alcuni dei link che trovi qui: http://www.humanfactor.com/pthreads/pthreadlinks.html http://www-128.ibm.com/developerwork.../l-posix1.html (se cerchi comunque ne trovi a milioni) Ciao, Mr Hyde
__________________
MacMini Late 2009/MacMini 2018 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:41.