Я новичок в Linux, поэтому я точно не знаю, как решить проблему.Отменить нить сна на Linux
В моем основном я создаю много рабочих потоков, каждый выполняет свою задачу и спит в течение нескольких секунд.
В некоторых случаях мне нужно прекратить действие. Мне нужно избегать завершения каждого сеанса сна, поэтому я хочу отправить сигнал в каждый поток, чтобы прервать сон (нанослое в моем случае) и завершить цикл threadproc.
Я прочитал много документов о pthread_kill, но когда я отправляю, например, SIGUSR1 в поток, процесс заканчивается ненормальным способом.
Может ли кто-нибудь указать мне на решение?
спасибо!
Edit:решаемые, решение было
pthread_cond_timedwait
иpthread_cond_signal
.
Возможно, вы захотите «переменные условия» Google. – Galik
Вы говорите о pthread_cond_timedwait? С уважением. –
Я не знаю детали вашего кода, но это звучит как задание для переменных состояния: http://www.cs.nmsu.edu/~jcook/Tools/pthreads/pthread_cond.html – Galik