標籤:python 多線程
建立線程
格式如下
threading.Thread(group=None, target=None, name=None, args=(), kwargs={})
這個構造器必須用關鍵字傳參調用
- group 線程組
- target 執行方法
- name 線程名字
- args target執行的元組參數
- kwargs target執行的字典參數
Thread對象函數
函數 |
描述 |
start() |
開始線程的執行 |
run() |
定義線程的功能的函數(一般會被子類重寫) |
join(timeout=None) |
程式掛起,直到線程結束;如果給了 timeout,則最多阻塞 timeout 秒 |
getName() |
返回線程的名字 |
setName(name) |
設定線程的名字 |
isAlive() |
布爾標誌,表示這個線程是否還在運行中 |
isDaemon() |
返回線程的 daemon 標誌 |
setDaemon(daemonic) |
把線程的 daemon 標誌設為 daemonic(一定要在調用 start()函數前調用) |
常用樣本
import threadingdef run(*arg, **karg): passthread = threading.Thread(target = run, name = "default", args = (), kwargs = {})thread.start()
#!/usr/bin/python#coding=utf-8import threadingfrom time import ctime,sleepdef sing(*arg): print "sing start: ", arg sleep(1) print "sing stop"def dance(*arg): print "dance start: ", arg sleep(1) print "dance stop"threads = []#建立線程對象t1 = threading.Thread(target = sing, name = ‘singThread‘, args = (‘raise me up‘,))threads.append(t1)t2 = threading.Thread(target = dance, name = ‘danceThread‘, args = (‘Rup‘,))threads.append(t2)#開始線程t1.start()t2.start()#等待線程結束for t in threads: t.join()print "game over"
輸出
sing start: (‘raise me up‘,)dance start: (‘Rup‘,)sing stopdance stopgame over
Python多線程編程簡介