1
Если следующие части кода выполняются в том порядке, в котором я их поместил, могу ли я быть уверенным, что поток 1 пробуждается сначала потоком 3, позже с последующим потоком 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);
Даже с этим кодом, следует понимать, что даже если поток 1 становится работоспособным до того нить 2 есть еще не обязательно является гарантией, что оно» ll планируется запустить перед потоком 2. Если есть работа, которую должен выполнить поток 1 перед тем, как запускается поток 2, тогда 'sem_post (& y)' (или эквивалент) необходимо выполнить потоком 1. –
согласился. Я обновляю свой ответ. – mouviciel