/ / fare sem_wating thread causa più switching - c ++, c, multithreading

fare sem_wating thread causa più switching - c ++, c, multithreading

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 № 1

No, 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.