crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Зачем нужен QThread::yieldCurrentThread()?
AXELman4ever
  опции профиля:
сообщение 29.10.2011, 17:30
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 31
Регистрация: 22.9.2011
Пользователь №: 2902

Спасибо сказали: 0 раз(а)




Репутация:   0  


Подскажите зачем нужно сие чудо?

Согласно документации:
Цитата
Yields execution of the current thread to another runnable thread, if any. Blah-blah-blah...


Как я понимаю, то используя в "каком-то" потоке yield я могу временно передать управление "другому" потоку (которому - решит за меня система), и после того, как этот "другой" поток отработает свою очередь он вернет управление обратно "какому-то" потоку который и выполнил yield? Я правильно понимаю?

Пересмотрел уйму примеров на джаве, но чувство "недопонимания" осталось.

Сообщение отредактировал AXELman4ever - 29.10.2011, 17:30
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AXELman4ever
  опции профиля:
сообщение 30.10.2011, 6:32
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 31
Регистрация: 22.9.2011
Пользователь №: 2902

Спасибо сказали: 0 раз(а)




Репутация:   0  


Прошу прощения. Уже разобрался :rolleyes:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
thechicho
  опции профиля:
сообщение 31.10.2011, 15:38
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

Спасибо сказали: 1 раз(а)




Репутация:   0  


дак напиши в чем фишка.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AXELman4ever
  опции профиля:
сообщение 1.11.2011, 2:45
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 31
Регистрация: 22.9.2011
Пользователь №: 2902

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(thechicho @ 31.10.2011, 16:38) *
дак напиши в чем фишка.


Ответ в вопросе. Сам спросил - сам ответил :lol: Только теперь более подробнее и с поправками.

Вообщем yield() пытается перевести текущий поток из состояния running в состояние runnable;


* Running - это состояние потока, когда управление принадлежит ему, и поток помечается как "занят" для планировщика потоков

* Runnable - состояние потока, при котором метод run() будет продолжать "крутить" очередь, но для планировщика этот поток будет иметь статус "свободен". То есть планировщик будет иметь право прервать выполнение потока или пропустить его очередь и передать управление следующему потоку на выполнение.

Но как я понимаю - штука не стабильная, и работает как хочет. Вернее, как этого захочет планировщик :huh:

Сообщение отредактировал AXELman4ever - 1.11.2011, 2:46
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.4.2024, 19:47