Остановка отдельных потоков - PullRequest
2 голосов
/ 24 сентября 2010

Используя библиотеку pthread в C, можно ли отправить сигнал SIGSTOP отдельному потоку?

Я хочу убедиться, что даже если я создаю N потоков в цикле, все должно начинать выполняться только тогда, когдавсе они были созданы.

Я спрашиваю, потому что в справочной странице для pthread_kill() упоминается:

Расположение сигналов распространяется на весь процесс: если установлен обработчик сигнала, обработчик будет вызываться в потоке нить , но , если расположение сигнала «стоп», «продолжить» или «прекратить», это действие повлияет на весь процесс.

Ответы [ 2 ]

2 голосов
/ 24 сентября 2010

Барьеры (см. pthread_barrier_init) - еще более простой способ выполнить то, что вам нужно.

2 голосов
/ 24 сентября 2010

Вы должны использовать мьютексы и условия для этого.

Вот отличный пример о том, как это сделать.

...