1.多執行緒的基礎函式及增加執行緒add thread
import threading
#1.基礎函式
#def main():
# print(threading.active_count()) #列印目前程序的數目
# print(threading.enumerate()) #檢視程序列表
# print(threading.current_thread()) #檢視正在執行哪乙個執行緒
#2.增加程序
defthread_job()
:print
('this is a thread of %s'
% threading.current_thread())
defmain()
: thread = threading.thread(target=thread_job)
#增加乙個程序
thread.start(
)#開始執行
if __name__ ==
'__main__'
: main(
)
2.守護程序和join
1.守護程序的含義以及join對守護執行緒的影響
如果設定乙個主線程的子執行緒為守護執行緒,就表示你在說這個子執行緒是不重要的,在程序退出的時候,不用等待這個子執行緒退出。意思就是主線程結束以後,子執行緒還沒有來得及執行,整個程式就退出了。
在預設情況下子執行緒為非守護執行緒。就是說,主線程的任務完成之後,主線程隨之結束,子執行緒繼續執行自己的任務,直到全部的子執行緒的任務全部結束,程式結束。
注:在預設的情況下python執行緒為非守護執行緒,即setdaemon(false)。
join() 方法的功能是在程式指定位置,優先讓該方法的呼叫者使用 cpu 資源。
在子執行緒為守護執行緒時,使用了join()後,主線程一直等待全部的子執行緒結束之後,主線程自身才結束,程式退出。
具體的**實現及講解可以參考另外一位博主的部落格
守護程序及join的詳細講解
2.join對非守護執行緒的影響
import time
defthread_job()
:print
('t1 start\n'
)for i in
range(10
):time.sleep(
0.1)
print
('t1 finish\n'
)def
t2_job()
:print
('t2 start\n'
)print
('t2 finish\n'
)def
main()
: added_thread = threading.thread(target=thread_job, name=
't1'
) thread2 = threading.thread(target=t2_job, name=
't2'
) added_thread.start(
) thread2.start(
) added_thread.join(
)#標誌
print
('all done\n'
)if __name__ ==
'__main__'
: main(
)
Python多執行緒之event
事件 event 用於執行緒間同步和通訊。比如執行緒a要完成某一任務 event 執行緒b才能執行後面的 怎麼實現呢,就是用event。event常用方法 釋義set 開始乙個事件 wait 如果未設定set狀態會一直等待,否則過 clear 清除set狀態 isset 是否設定set狀態 注意 w...
python多執行緒之 thread
多執行緒類似於同時執行多個不同程式,多執行緒執行有如下優點 執行緒在執行過程中與程序還是有區別的。每個獨立的執行緒有乙個程式執行的入口 順序執行序列和程式的出口。但是執行緒不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。每個執行緒都有他自己的一組cpu暫存器,稱為執行緒的上下...
Python多執行緒程式設計之多執行緒加鎖
python語言本身是支援多執行緒的,不像php語言。下面的例子是多個執行緒做同一批任務,任務總是有task num個,每次執行緒做乙個任務 print 做完後繼續取任務,直到所有任務完成為止。1 coding utf 8 2import threading 34 start task 0 5 ta...