Linux: вызовет ли wait () из одного потока все остальные потоки также для перехода в спящий режим? - PullRequest
0 голосов
/ 21 сентября 2011

«Системный вызов wait () приостанавливает выполнение текущего процесса до тех пор, пока один из его дочерних элементов не завершится». Waitpid также похож.

Мой вопрос: вызовет ли wait () из одного потока все остальные потоки (в том же процессе) и перейдет в спящий режим? Поведение также одинаково для отдельных потоков?

Ответы [ 3 ]

3 голосов
/ 21 сентября 2011

Это просто ошибка в руководстве.wait приостанавливает вызывающий поток, а не процесс.Нет абсолютно никакого способа приостановить весь процесс, за исключением отправки его SIGSTOP или ручной приостановки каждого потока по одному.

0 голосов
/ 24 сентября 2011

Должен только остановить текущий поток. Если вы хотите, чтобы люди болели, когда они смотрели на ваш код, и причиняли себе много проблем, вы можете использовать это для синхронизации фальшивых потоков присяжных. Я не рекомендовал бы это все же.

0 голосов
/ 21 сентября 2011

Насколько я знаю, вызов wait из любого потока приведет к остановке всех потоков, связанных с этим процессом.

Но не удерживайте меня от этого.Лучше всего проверить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...