Рабочий поток, связанный с процессором - PullRequest
0 голосов
/ 07 апреля 2011

У меня есть поток TCP / IP (основной поток), который прослушивает порт. Когда приходит запрос TCP / IP, я создаю поток для его обработки. Если рабочим потоком является CPU BOUND (представьте цикл от 1 до 1000000, который ничего не делает), я не могу получить еще один запрос tcp / ip. SO не дает время среза прослушивающему потоку.

Как я могу решить эту проблему? Это проблема реализации? Когда пакет tcp / ip входит в стек tcp / ip, SO должен предоставить время среза прослушивающему потоку?

Спасибо!

1 Ответ

1 голос
/ 11 апреля 2011

Используйте функции WinAPI SwitchToThread() или Sleep(0) в рабочем потоке, чтобы он отдавал свой временной интервал другим потокам / процессам в системе.Или в Delphi используйте TThread.Yield.

...