2010-02-13 python threading потоки thread
Потоки (threads) Python, используются для параллельного выполнения блокирующих операций, вызов "внешних" функций, чаще всего используется для распараллеливания работы с сетью (работа с http/web, подключение к БД и т.п.) т.к. это может на длительное время заблокировать поток. Сам питоновский код (вызов функций, математические операции и т.п.) не работает параллельно (см. GIL), поэтому нет смысла пихать в разные потоки тяжелые математические вычисления, для этого можно использовать multiprocessing, либо специальные математические библиотеки например NumPy, SciPy.
import threading
class TestThread(threading.Thread):
def run(self):
print('my name',self.getName()) # получить имя потока
test = TestThread()
test.setName('my proc') # задать имя потока (необязательно)
test.setDaemon(True) # сделать поток демоном
test.start()
try:
import thread
except ImportError:
import _thread as thread
import time
def myThread(param):
print(param)
thread.start_new_thread(myThread, ('this param',))
time.sleep(0.2)
import threading
def foo(a, b):
pass
threading.Thread(target=foo, args=("some", "args")).start()
from threading import currentThread
th = currentThread()
th.tag = 'this tag'