2017-07-11 11 views
-2

J'apprends des threads POSIX. Ma question - Comment suspendre et reprendre pthread? Comme les threads en Java, y a-t-il des fonctions comme wait, notify etc? Je veux exécuter le single pthread plusieurs fois en fonction de certaines situations.Suspension et reprise dans le thread POSIX

merci à l'avance

+0

https://stackoverflow.com/questions/11468333/linux-threads-suspend-resume Cela pourrait avoir ce dont vous avez besoin. – J0hn

Répondre

0

Comment suspendre et reprendre pthread? Comme les threads en Java, y a-t-il une fonction comme wait, notifier etc?

Lire à propos des variables conditionnelles dans pthread. Fondamentalement, les variables conditionnelles vous permettent de vérifier une condition avant qu'un thread puisse aller plus loin. Dites par exemple qu'il y a 3 threads qui ne continueront que si certaines conditions sont vraies. Dans le cas où cette condition est fausse, les threads vont libérer le verrou de mutex qu'ils tiennent et "wait". Lorsque le verrou sur l'objet partagé de type pthread_mutex_t est libéré, d'autres threads continueront à faire leur travail et ainsi, à un moment donné, la condition deviendra vraie (espérons-le). Vérifiez la fonction appelée pthread_cond_wait.

Une fois que cette condition devient vraie (ou est satisfaite), les fonctions pthread_cond_signal/pthread_cond_broadcast pourraient être utilisés pour « informer » les fils qui attendaient sur l'objet pthread_cond_t. Ces threads (3 threads dans cette explication simple) acquièrent alors automatiquement le verrou mutex (bien sûr, un thread à la fois) et vont à leur travail.

Consultez le tutoriel this.

Je veux exécuter le single pthread plusieurs fois selon certaines situations .

Vous voulez en savoir plus?