三、執行緒
四、守護執行緒
總結在實際運用中python程式往往要處理多個任務,那麼如何讓python程式執行多工呢?這就用到了執行緒和程序,執行緒和程序又各有特點,下面就進一步闡述執行緒和程序
1.1.多工就是同一時間,多個任務
1.2.併發
在一段時間內交替執行多個任務
1.3並行
同時在一起執行多個任務
資源分配的最小單位-——它是作業系統進行資源分配的排程執行的基本單位。
例如: 乙個正在執行的程式
1.匯入程序庫
**如下:
import multiprocessing
2.建立程序物件
程序物件=multiprocessing.process(target=a)
a為任務名
3.啟動程序執行任務
程序物件.start(
)
4.獲取程序編號
os.getpid(
)#獲取當前程序編號
5.程式示例
import multiprocessing
defa()
:for i in
range(3
):print
('read'
)defb(
):for i in
range(3
):print
('write'
)if __name__==
'__main__'
: jin = multiprocessing.process(target=a)
ejin = multiprocessing.process(target=b)
jin.start(
) ejin.start(
)
執行結果
readwrite
readwrite
writeread
執行緒:程式執行的最小單位
乙個程序中最少有乙個執行緒來執行程式,本身不占有系統資源(只需要在執行中必需的資源),它可以與同屬於乙個程序的執行緒共享其擁有的全部資源(例如:乙個程式可以同時開啟兩個視窗)
1.匯入執行緒庫
**如下:
import threading
2.建立程序物件
程序物件=threading.thread(target=a)
a為任務名
3.啟動程序執行任務
執行緒物件.start(
)
4.獲取程序編號
os.getpid(
)#獲取當前程序編號
5.程式示例
import threading
import time
defa()
:for i in
range(3
):print
('read'
) time.sleep(1)
defb()
:for j in
range(3
):print
('write'
) time.sleep(1)
if __name__==
'__main__'
: read = threading.thread(target=a)
write = threading.thread(target=b)
read.start(
) write.start(
)
執行結果
read
write
read
write
readwrite
一般情況下主線程會等待所有子執行緒結束才會結束
在實際運用中有時候需要避免這種情況,那麼就可以通過設定守護執行緒來達到主線程不會等待子執行緒結束才結束
執行緒物件=
= threading.thread(target=a,daemon=
true
)
執行緒物件.setdeamon(
true
)
本文僅僅簡單介紹了執行緒與程序的基本概念及使用使用,程序和執行緒給我們提供了一種乙個程式執行多個任務的途徑,在實際運用中有著很大的作用。 Python的執行緒與程序
程序是資源分配的最小單位,執行緒是cpu排程的最小單位。執行緒可以讓應用程式併發的執行多個任務,執行緒之間方便共享資源,程序之間資訊難以共享。引用知乎大佬的比喻,程序 火車,執行緒 車廂 簡單使用from concurrent.futures import threadpoolexecutor im...
python執行緒與程序
直接呼叫 import threading,time def run n print running n time.sleep 2 t1 threading.thread target run,args test1 生成乙個執行緒例項 t2 threading.thread target run,a...
python 程序與執行緒
執行緒是作業系統能夠進行運算排程的最小單位,它包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中乙個單一順序的控制流,乙個程序中可以併發多個執行緒,每條執行緒並行執行不 同的任務。程序 qq要以乙個整體的形式暴露給作業系統功能管理,裡面包含對各種資源的呼叫。記憶體對各種資源管理的集合 就...