2010-04-28 2 views
0

У меня есть странная проблема с моим программным обеспечением с резьбой.Резьбовое приложение спит с другим приложением

Я запускаю 2 экземпляра программного обеспечения. Каждый экземпляр имеет 2 потока, один поток создает сокет для использования, а другой использует сокет для связи.

Когда один из потоков в одном экземпляре вызывает sleep(3), другие потоки в другом экземпляре тоже спят. И самое главное, когда я перезагрузил компьютер, он работает в первый раз, но после второй попытки он спит, как описано.

Как это возможно? Используется ли какой-то общий ресурс?

+0

На какое-то время название вопроса заставило меня подумать, что вы спрашивали о многопоточном приложении, которое спало с «другим» приложением ;-p – Pharaun

ответ

2

Сон приостанавливает ваш процесс, а не вашу нить. См. sleep vs pthead_yield для более подробной информации.

+0

Но даже в этом случае почему он спящий другой экземпляр, потому что это разные процессы? – DeeD

+0

Ах, извините, неправильно прочитал вопрос. Вам нужно будет предоставить более подробную информацию. Предпочтительно SSCCE (http://sscce.org). –

-1

Вы пробовали обернуть функцию сна в профилактическом режиме?