![]() |
|
Модераторы: xvr |
![]()
|
|
| CPlusPlusFAN |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 1.11.2005 Где: Воронеж Репутация: нет Всего: нет |
Здравствуйте!
В винде есть такие функции:
соответственно приостановка/запуск потока. А возможно ли такое реализовать в никсах? Спасибо за внимание! ЗЫ Вот попробовал такой код:
Так вот, по-видимому я неправильно делаю приостановку. Оно работает так: start *ждёт 5 сек.* finish *ждёт ввода* Такое чувство, что после 5 секунд поток самопроизвольно запустился. Я ожидал либо (не приостановился): start finish *ждёт 5 сек.* *ждёт ввода* либо (приостановился): start *ждёт 5 сек.* *ждёт ввода* Это сообщение отредактировал(а) CPlusPlusFAN - 12.11.2009, 17:50 |
||||
|
|||||
| niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: 1 Всего: 0 |
Незнаю что за код ты пробовал, лень читать. Но то что тебе нужно реализуется мьютексками и "wait condition"-ами
--------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: нет Всего: 50 |
Classes.pas (VCL):
|
|||
|
||||
| niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: 1 Всего: 0 |
Alca, Спасибо, просветил.
Только не понимаю, какое отношение к этому имеет "Classes.pas (VCL)" ? --------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: нет Всего: 50 |
Это от туда
|
|||
|
||||
| niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: 1 Всего: 0 |
Парадокс)
--------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
| Wolf |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 9.6.2006 Где: Нижневартовск Репутация: нет Всего: нет |
Спасибо, ценная цитата из VCL. Там оказывается много цитат на свободные темы
К сожалению, так и происходит. По SIGSTOP останавливается весь процесс. |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: нет Всего: 50 |
||||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 1 Всего: 39 |
>Остановка потоков (SuspendThread) в режиме ядра
Какое это имеет отношение к UNIX? Поток заморозить нельзя. Можно либо, как выше предлагали, вставить в цикл треда мутекс, который сможет приостановить выполнение до последующей разблокировки. Либо, что более верно на мой взгляд, форкнуться или запустить другой вспомогательный процесс, а им уже управлять, как душе угодно. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| proc_maker |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 11.11.2006 Репутация: 1 Всего: 1 |
Я бы посоветовал спячку на семафоре (на условной переменной). Есть возможность и спать с таймаутом и постоянно пока не разбудят:
pthread_cond_wait pthread_cond_timedwait Это сообщение отредактировал(а) proc_maker - 14.9.2010, 12:16 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 3 Всего: 162 |
Тупой вариант:
Хороший вариант: см пост proc_maker. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |