|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.12.2008, 14:45 | #1 |
Пользователь
Регистрация: 15.12.2008
Сообщений: 15
|
Процессы и потоки
Почему поток должен добровольно отказываться от доступа к процессору уступая своё место другому потоку ?
|
15.12.2008, 14:47 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Потому что это нужно для реализации "многозадачности"...
|
15.12.2008, 14:52 | #3 |
Пользователь
Регистрация: 15.12.2008
Сообщений: 15
|
Спасиб!Но есть ещё какая-та причина !
|
15.12.2008, 15:46 | #4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
в 90% случаев в Windows поток принудительно снимается с процессора, а
если поток добровольно отказывается от доступа к процессору, то это в большинстве случаев вызов функции Sleep(Ex) либо WaitForSingleObject(Ex). |
15.12.2008, 17:12 | #5 |
Пользователь
Регистрация: 15.12.2008
Сообщений: 15
|
Я не спросил из-за каких факторов , а спросил почему должен ?
Ну в принципе я думаю поддержка многозадачности это наиболее разумный вариант,но есть ещё что-то |
15.12.2008, 17:47 | #6 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
он не должен освобождать процессор! никакой поток не должен сам освобождать процессор и не надо никогда об этом париться, система сама разберётся. Ну разумеется это не обозначает что надо ставить приоритет своему потоку THREAD_PRIORITY_TIME_CRITICAL и обрабатывать в этом потоке гигабайты данных. Это только вредит системе.
Последний раз редактировалось rpy3uH; 15.12.2008 в 17:51. |
15.12.2008, 19:11 | #7 |
Пользователь
Регистрация: 15.12.2008
Сообщений: 15
|
Я тоже думал не должен
Но оказывается есть такая ситуация,когда потоки должны быть вежливыми и вызывать thread_yield(ф-ция не из WinApi) чтобы уступить своё место! |
16.12.2008, 13:01 | #8 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
ну это уже ваше дело...
|
16.12.2008, 21:24 | #9 |
Пользователь
Регистрация: 15.12.2008
Сообщений: 15
|
Ну дело-то моё !
Я помощи попросил ! У меня есть идея : может быть потому что,пользовательские потоки не являются элементами уровня ядра, соответственно, планировщик системный о них не знает - для него есть только один процесс, что внутри него его не волнует. поэтому потоки сами должны добровольно отдавать управление, иначе выполняться будет только один из них Может ли этот ответ подойти ? |
16.12.2008, 21:35 | #10 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Потоки | AidarBik | Win Api | 2 | 04.08.2008 10:00 |
DLL, потоки | BOBAH13 | Общие вопросы Delphi | 23 | 27.02.2008 20:43 |
Потоки в С | Raptor | Помощь студентам | 1 | 07.01.2008 21:12 |
Потоки и объекты | OrdJONY | Общие вопросы Delphi | 3 | 28.11.2007 21:59 |