Форум сайта python.su
Пару месяцев приложение работает с трэдами ~таким образом:
# -*- coding:utf8 -*-
import threading
import time
class TestThread(threading.Thread):
""" Test class thread """
def __init__(self, name):
threading.Thread.__init__(self, name = name)
self.name = name
self.running = 1
def run(self):
while self.running:
print threading.currentThread().getName() + ' -> work'
time.sleep(3)
def say(self, text):
print self.name + ' -> say: ' + text
def exit(self):
print self.name + ' -> exit'
self.running = 0
thread_dic = {}
def create_thread(name):
""" засовываем объект трэда в dict и запускаем его """
thread_dic[name] = TestThread(name)
thread_dic[name].start()
def say_thread(name, text):
""" зная имя трэда можем обратиться к нему и выполнить функцию из него"""
thread_dic[name].say(text)
def exit_thread(name):
""" и завершить работу трэда"""
thread_dic[name].exit()
for itr in xrange(2):
""" создадим пару трэдов """
create_thread("thread"+str(itr))
time.sleep(1)
say_thread("thread1", "hello") # пусть трэд с именем thread1 скажет hello
exit_thread("thread1") # и завершит работу
say_thread("thread0", "test message")
exit_thread("thread0")
Офлайн
Конечно же велосипед :)
Кстати, а где .join?
Офлайн