Si les morceaux de code suivants s'exécutent dans l'ordre dans lequel je les ai placés, puis-je être sûr que le thread 1 est d'abord réveillé par le thread 3, suivi par le thread 2?Wait & Signal order
main:
sem_init(&x,0,0);
thread 1:
sem_wait(&x);
thread 2:
sem_wait(&x);
thread 3:
sem_post(&x);
Même avec ce code, il faut se rendre compte que même si fil 1 devient runnable avant fil 2 il n'y a toujours pas nécessairement une garantie que ce Il sera programmé pour s'exécuter avant le thread 2. S'il y a du travail que le thread 1 doit faire avant que le thread 2 s'exécute, le 'sem_post (& y)' (ou équivalent) doit être fait par le thread 1. –
accepté. Je mets à jour ma réponse. – mouviciel