有很多的場景中的事情是同時進⾏的,⽐如開⻋的時候 ⼿和腳共同來駕駛汽 ⻋,再⽐如唱歌跳舞也是同時進⾏的。
1.1 程式中模擬多工
import time
defsing()
:for i in
range(3
):print
("正在唱歌...%d"
%i) time.sleep(1)
defdance()
:for i in
range(3
):print
("正在跳舞...%d"
%i)
time.sleep(1)
if __name__ ==
'__main__'
: sing(
) dance(
)
主線程會等待⼦執行緒結束之後在結束。
join() 等待⼦執行緒結束之後,主線程繼續執⾏。
setdaemon() 守護執行緒,不會等待⼦執行緒結束。
import threading
import time
defdemo()
:# ⼦執行緒
print
("hello girls"
) time.sleep(1)
if __name__ ==
"__main__"
:for i in
range(5
):t = threading.thread(target=demo)
t.start(
)
threading.enumerate() #檢視當前執行緒的數量
當調⽤thread的時候,不會建立執行緒。
當調⽤thread建立出來的例項物件的start⽅法的時候,才會建立執行緒以及開始 運⾏這個執行緒。
繼承thread類建立執行緒
import threading
import time
class
a(threading.thread)
:def
__init__
(self,name)
:super()
.__init__(name=name)
defrun
(self)
:for i in
range(5
):print
(i)if __name__ ==
"__main__"
: t = a(
'test_name'
) t.start(
)
在⼀個函式中,對全域性變數進⾏修改的時候,是否要加global要看是否對全域性變數的指向進⾏了修改,如果修改了指向,那麼必須使⽤global,僅僅是修改了指向的空間中的資料,此時不⽤必須使⽤globa。
l 執行緒是共享全域性變數
多執行緒引數-args
threading.thread(target=test, args=(num,))
多工 執行緒
建立函式 建立執行緒物件,並制定函式 開啟執行緒 import threading import time defwork1 1.定義函式 for i in range 5 print 正在掃地 i time.sleep 1 defmain 測試執行緒的基本使用 2.建立執行緒物件 t1 threa...
多工 執行緒
簡單地說,就是作業系統可以同時執行多個任務。實現多工有多種方式,執行緒 程序 協程。可以簡單理解為同一程序中有多個計數器,每個執行緒的執行時間不確定,而每個程序的時間片相等,執行緒是作業系統排程執行的最小單位.import threadingt1 threading.thread target fu...
多工 執行緒
什麼叫 多工 呢?簡單地說,就是作業系統可以同時執行多個任務。執行緒 1.使用threading模組 import threading defsing pass defdance pass defmain t1 threading.thread target sing t2 threading.th...