Ho diversi thread che fungono da backup per il principale che passa la maggior parte della loro vita bloccata da sem_wait()
. È corretto tenerli o è meglio generare nuovi thread solo quando hanno bisogno di fare un lavoro vero? Il kernel passa ai thread in attesa sem_wait()
e "sprecare" i cicli della CPU?
Grazie.
risposte:
2 per risposta № 1No, i thread bloccati non vengono mai convertiti in alcuna libreria di thread e sistema operativo comune (sarebbe uno estremamente mal progettato dove si trovavano). Ma useranno ancora la memoria, ovviamente.
0 per risposta № 2
Scegli l'opzione A.
I cicli sprecati sono minori. I tuoi thread saranno sempre in stato di attesa.
D'altra parte, la complessità dell'avvio e dell'arresto dei thread, invece di averli tutti in sospeso, può seriamente danneggiare la logica del programma.