Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> sys.exit не работает при многопоточности? 
V
    Опции темы
kulibinka
Дата 24.2.2007, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



Как заставить многопоточный скрипт завершить работу?

Следующий код

Код

# -*- coding: windows-1251 -*-
#!/usr/local/bin/python

import os, sys,time, threading, Queue

def test_func (num):
    print 'working with ', num

class Downloader(threading.Thread):
    def __init__(self, queue):
        self.__queue = queue
        threading.Thread.__init__(self)

    def run(self):
        while 1:
            item = self.__queue.get()
            if item is None:
                break

            num, info = item
            print num, '\t', self.getName(), '\t', "start ", info
            test_func (info)
            print '\t', self.getName(), '\t', "end"
            self.__queue.task_done()


def download_list (lst, DownloaderS = 5):
    t1 = time.time()
    print 'OBRABOTATJ: ', len(lst)
    
    queue = Queue.Queue()

    all_downloaders = []
    for i in range(DownloaderS):
        all_downloaders.append(Downloader(queue).start())
        

    for i in range(len(lst)):
        queue.put((i, lst[i]))

    queue.join()
    print 'THREAD COUNT: ', threading.activeCount()


if __name__ == "__main__":
    potokov = 5
    download_list(xrange(10), potokov)
    print 'tryin to exit'
    sys.exit()
    print 'impossible'


показывает проблему - он печатает 'tryin to exit' и зависает навсегда...
и на sys.exit() ему совершенно наплевать.

Как это решается?
PM MAIL   Вверх
kulibinka
Дата 24.2.2007, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



решилось smile
os._exit(0)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0681 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.