2014-03-16 3 views
-6

i wan't для приостановки и возобновления основной функции есть какой-либо способ, кроме метода сна. Пожалуйста, помогитеКак приостановить и возобновить процесс и поток в C++

+2

слишком расплывчато, что ты на самом деле пытается сделать? сон? или ждать состояния в другом потоке? см. Pthread в этом случае https://computing.llnl.gov/tutorials/pthreads/ –

+0

Задержание было бы более подходящим наказанием. –

+0

Пожалуйста, см. Http://stackoverflow.com/questions/22419068/stdmutexlock-blocking-cpu-usage/22419120#comment34090624_22419120 –

ответ

0

Если у вас есть другие темы, работающих отдельно от основных, вы можете использовать использовать sem_wait (семафор инициализируется 0) а в main(), а затем из вашего потока вы можете вызвать sem_post всякий раз, когда вы хотите main() бежать.

Read о семафора и использования:

+0

Спасибо, что работает :) – user2058173

+0

PLZ сказать мне, если я делаю sem_wait (2 раза), то после выполнения sem_post один раз он вызывает один поток, если семафор инициализирован до 0 – user2058173

+0

Значение 'семафор' должен быть '> = 1' для' sem_wait' для продолжения. Если вы начинаете с начального значения '0', то' sem_wait' будет блокироваться до тех пор, пока 'sem_post' не увеличит его на' 1' до '1'. Для каждого 'sem_wait' должен быть соответствующий' sem_post', который блокирует заблокированный поток. Надеюсь, это поможет вам! – brokenfoot

Смежные вопросы