Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 7, 2011 22:55:37

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Принудительное завершение потока

Ну, я вот думаю о таком подходе - когда у меня несколько потоков, выполняющих похожие действия в бесконечном цикле, я создаю Queue(), типа “служебную очередь”, и кидаю ссылку на нее в конструктор потоков. Каждый поток пытается на каждой итерации цикла неблокирующе прочитать служебное сообщение из очереди, если очередь пуста - то просто идет дальше. Если нет - то читает сообщение.
Например, если мне надо убить все потоки - я посылаю строчку “EXIT”, и поток, который ее извлекает из очереди, тут же кладет ее обратно и завершает харакири, и т.д.

Интересно другие варианты послушать.



Офлайн

#2 Окт. 8, 2011 11:45:07

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Принудительное завершение потока

> если очередь пуста - то просто идет дальше.
т.е. в потоке используются только неблокирующие ф-ии? Тогда эффективней сделать приложение асинхронным с одним потоком.

потоки по большей части нужны из-за блокирующих ф-ий, имхо

Отредактировано (Окт. 8, 2011 11:45:34)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version