import threading
建立乙個執行緒,指向的函式,不接收引數的情況
t = threading.thread(target=函式名)
建立乙個執行緒,指向的函式,收引數的情況
t = threading.thread(target=函式名, args=(實參1,))
執行緒物件名.start()
生命週期
我們的py檔案執行起來的時候,就會有乙個主線程
當子執行緒物件建立後,當子執行緒物件執行時,才會創造出來新的執行緒,叫做子執行緒
子執行緒如果**沒有執行結束,主線程是會等待子執行緒的
直接子執行緒全部執行完畢
主線程才會結束
import multiprocessing
p = multiprocessing.process(target=函式名)
程序物件名.start()
程序物件名.join()
# 當**執行到這裡時,直譯器會判斷程序物件是否已執行完成
# 如果沒有執行完成,**會卡住,直到該程序執行完成,才會執行後面的**
檢視當前程序的id
os.getpid()
通過程序物件查
程序物件.id
檢視當前程序的父程序id
os.getppid()
判斷程序物件p是否存活
p.is_alive
分配資源
執行任務
程序包含執行緒
每開乙個程序出來,都必然會有乙個主線程
程序提供了資源(記憶體空間)
執行緒主要執行任務
多執行緒可以共享全域性變數
多程序不可以共享全域性變數
使用方法與執行緒鎖相同
semaphore是同時允許一定數量的執行緒更改資料
訊號量物件 = multiprocessing.semaphore(鑰匙的數量)
建立佇列物件
佇列物件 = multiprocessing.queue(容量)
用法功能
資料同步,無需接收與傳遞引數,資料變化自動同步用法
注意
import multiprocessing
import time
def func(n):
print(n)
time.sleep(1)
if __name__ == '__main__':
p = multiprocessing.pool(3)
ret_list =
for i in range(10):
for ret in ret_list:
ret.get()
多執行緒與多程序
程序 程序是程式的一次執行,在傳統的計算機中,程序既是基本的分配單元,也是基本的執行單元。執行緒 執行緒是可執行的實體單元,它是處理機排程的基本單位。由於執行緒在同一位址空間,因此建立和撤銷執行緒的開銷小,執行緒間的通訊效率高,切換迅速。在多處理機系統中,對程序的個數有所限制,但對執行緒的個數不存在...
多執行緒與多程序
魚還是熊掌 多程序多執行緒的選擇 關於多程序和多執行緒,教科書上最經典的一句話是 程序是資源分配的最小單位,執行緒是cpu排程的最小單位 這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有這麼簡單了,選的不好,會讓你深受其害。經常在網路上看到有的xdjm問 多程序好還是多執行緒好?...
多執行緒與多程序
程序是資源分配的最小單位,基於cpu而言的,一般乙個cpu執行乙個程序,只不過切換速度太快,相當於同時在執行多個程序。如程式a在讀取大量資料時,cpu可以切換程式b,當a讀完之後,儲存b的執行進度並暫停,繼續執行a 也就是併發執行 乙個程式對應乙個程序組,程序具有建立其他程序的功能,而程式沒有。同一...