python語言本身是支援多執行緒的,不像php語言。
下面的例子是多個執行緒做同一批任務,任務總是有task_num個,每次執行緒做乙個任務(print),做完後繼續取任務,直到所有任務完成為止。
1#coding:utf-8
2import
threading
34 start_task =0
5 task_num = 10000
6 mu = threading.lock() #
##通過工廠方法獲取乙個新的鎖物件78
class mythread(threading.thread): #
##類mythread繼承基類threading.thread910
def run(self): #
#執行緒啟動的入口函式,子類需重寫
11global
start_task
12global
mu13
global
start_task
1415
while start_task < task_num: #
#如果任務沒有完成,則繼續
16if mu.acquire(): #
#加鎖17
if start_task 18print
start_task
19 start_task = start_task + 1
20 mu.release() #
#釋放鎖
2122
deftest():
23 thread_all =
24for i in range(6): #
#for迴圈建立6個執行緒
25 t = mythread() #
#建立執行緒
2627 t.start() #
##啟動執行緒
2829
for i in range(6):
30 thread_all[i].join() #
#等待執行緒結束
3132
if__name__ == "
__main__":
33 test()
測試加鎖與不加鎖效果:將任務數設定為1千萬或者以上,在多核機器上將print輸出分別儲存,就能說明問題。
python併發程式設計之多執行緒
程序包含了執行該程式所需要所有資源 程序是乙個資源單位 執行緒是cpu的最小執行單位 每乙個程序一旦被建立 就預設開啟了一條執行緒 稱之為主線程 使用執行緒可以提高程式效率 為何不用多程序提高效率 是因為程序對作業系統的資源耗費非常高 執行緒共享建立它的程序的位址空間 程序有自己的位址空間。執行緒可...
python併發程式設計之多執行緒一
一,什麼是執行緒 執行緒也被稱為輕量程序電腦科學術語,指執行中的程式的排程單位。執行緒是程序中的實體,乙個程序可以擁有多個執行緒,乙個執行緒必須有乙個父程序。執行緒不擁有系統資源,只有執行必須的一些資料結構 它與父程序的其它執行緒共享該程序所擁有的全部資源。執行緒可以建立和撤消執行緒,從而實現程式的...
Linux網路程式設計之多執行緒
多執行緒模型 在多執行緒模型下,注意共享資料的同步,mutex condition variable rw lock等的使用,local thread storage的使用,另外,可以搭配執行緒池處理非同步計算任務。在c 11中的執行緒庫中已經提供了future相關的工具,合理地使用執行緒模型減少資...