2. 主線程和子執行緒的執行關係
3. 檢視執行緒數量
4. 執行緒間的通訊(多執行緒共享全域性變數)
呼叫模組import threading,利用該模組中的threading.thread()方法建立多執行緒
使得案例中,singe()與dance()函式可以同時執行
import threading
import time
defsinge()
:for i in
range(3
):print
('正在唱歌....'
) time.sleep(1)
defdance()
:for i in
range(3
):print
('正在跳舞....'
) time.sleep(1)
defmain()
: t1 = threading.thread(target=singe)
t2 = threading.thread(target=dance)
t1.start(
) t2.start(
)if __name__ ==
'__main__'
: main(
)
import threading
class
main
(threading.thread)
:#重新定義run()方法,覆蓋父類中的run()方法
defrun
(self)
:for i in
range(5
):print
(i)if __name__ ==
'__main__'
:# 例項化
m = main(
)# 建立和啟動子執行緒
m.start(
)
import threading
defdemo()
:#子執行緒
for i in
range(5
):print
('hello world'
) time.sleep(1)
if __name__ ==
'__main__'
:#主線程
t = threading.thread(target=demo)
#非正真建立子執行緒,只是例項化物件
# 守護執行緒 不會等待子執行緒結束
#t.setdaemon(true) # 當1被輸出後,程式整個程式結束
t.start(
)# 建立和啟動執行緒都是通過t.start()主線程會等待子執行緒結束之後 主線程在結束
# join() 等待子執行緒結束之後,主線程才繼續執行
#t.join() 結果:輸出5個『hello world後,再輸出1』
print(1
)
# lst = ['a','b','c']
## for index,i in enumerate(lst):
enumerate()方法會遍歷出兩個值,分別是索引值下標,索引值
## print(i,index)
# # print(type(i))--
----
----
----
----
----
----
----
----
----
----
-import threading
import time
defdemo1()
:for i in
range(5
):print
('demo1--%d'
%i) time.sleep(1)
defdemo2()
:for i in
range(10
):print
('demo2--%d'
% i)
time.sleep(1)
defmain()
: t1 = threading.thread(target=demo1,name =
'demo1'
) t2 = threading.thread(target=demo2,name =
'demo2'
) t1.start(
) t2.start(
)while
true
:print
(threading.
enumerate()
)iflen(threading.
enumerate()
)<=1:
break
time.sleep(1)
if __name__ ==
'__main__'
: main(
)
import threading
import time
# 執行緒間是共享的全域性變數,程序不共享全域性變數
num =
100# num = [11,22] 列表一樣可以
defdemo1
(nums)
:global num
num +=
1# print('demo1--%s'% str(num))
defdemo2()
:#print('demo2--%s' % str(num))
print
(num)
defmain()
: t1 = threading.thread(target = demo1,args=(33
,)) t2 = threading.thread(target = demo2)
t1.start(
) time.sleep(1)
# 保證demo1先執行
t2.start(
)print
('main-num=%s'
% num)
輸出結果:
demo2列印出101
主線程列印出main-num=
101
多工 執行緒
建立函式 建立執行緒物件,並制定函式 開啟執行緒 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...