建立函式
建立執行緒物件,並制定函式
開啟執行緒
import threading
import time
defwork1
():# 1.定義函式
for i in range(5):
print('正在掃地----', i)
time.sleep(1)
defmain
():"""測試執行緒的基本使用"""
# 2.建立執行緒物件
t1 = threading.thread(target=work1) # 注意點:傳遞給 target 的是函式名,不要寫函式名後寫小括號
# 3.開啟執行緒。呼叫 start 的時候執行緒才會真正的開啟
t1.start()
if __name__ == '__main__':
main()
定義乙個類繼承 thread
類裡面提供 run 方法
建立自定義執行緒類的物件
呼叫 start 開啟執行緒,並自動執行 run 方法
import time
import threading
class
mythread
(threading.thread):
# 1. 定義乙個類繼承 thread
defrun
(self):
# 2. 類裡面提供 run 方法
for i in range(5):
print('正在掃地---', self.name)
time.sleep(1)
defmain
():"""測試自定義執行緒類"""
t1 = mythread() # 3. 建立自定義執行緒類的物件
t1.start() # 4.呼叫 start 開啟執行緒,並自動執行 run 方法
print(t1)
if __name__ == '__main__':
main()
多執行緒之間,使用全域性變數傳遞引數和函式之間使用全域性變數傳遞引數,用法一致
**示例
import threading
import time
defwork1
():global num
num = 100
# 執行緒1 修改全域性變數
print('work1---num=', num)
defwork2
():# 執行緒2 可以獲取 執行緒1 修改的結果
print('work2----,num=', num)
num = 0
defmain
():"""測試執行緒間使用全域性變數共享資料"""
t1 = threading.thread(target=work1)
t1.start()
time.sleep(0.5)
t2 = threading.thread(target=work2)
t2.start()
if __name__ == '__main__':
main()
import threading
import time
defwork1
(tmp):
# 函式的引數要和執行緒的 args 元素一一對應
print('work1---tmp=', tmp)
defwork2
(tmp):
# 執行緒2 可以獲取 執行緒1 修改的結果
print('work2----,tmp=', tmp)
defmain
():"""測試執行緒間使用傳參的方式共享資料"""
ls = # 執行緒間使用引數共享資料,必須使用可變型別的資料
t1 = threading.thread(target=work1, args=(ls,)) # 給執行緒傳參,使用 args 傳遞乙個元組
t1.start()
time.sleep(0.5)
t2 = threading.thread(target=work2, args=(ls,))
t2.start()
if __name__ == '__main__':
main()
執行緒同步指的是多執行緒之間互相協同,互相配合
互斥鎖是實現執行緒同步的一種方案,多執行緒之間共享一把鎖,這樣在針對同乙份資料操作的時候,可以有效的保證資料的安全
實現步驟:
# 建立鎖
mutex = threading.lock()
# 鎖定
mutex.acquire()
# 釋放
mutex.release()
**示例import threading
import time
defwork1
():for i in range(200):
print('正在掃地~~', i)
defwork2
():for i in range(200):
print('正在搬磚~~', i)
defmain
(): t1 = threading.thread(target=work1)
t1.start()
t2 = threading.thread(target=work2)
t2.start()
if __name__ == '__main__':
main()
多工 執行緒
簡單地說,就是作業系統可以同時執行多個任務。實現多工有多種方式,執行緒 程序 協程。可以簡單理解為同一程序中有多個計數器,每個執行緒的執行時間不確定,而每個程序的時間片相等,執行緒是作業系統排程執行的最小單位.import threadingt1 threading.thread target fu...
多工 執行緒
什麼叫 多工 呢?簡單地說,就是作業系統可以同時執行多個任務。執行緒 1.使用threading模組 import threading defsing pass defdance pass defmain t1 threading.thread target sing t2 threading.th...
多工 執行緒
coding utf 8 from time import sleep defsing for i in range 3 print 正在唱歌.d i sleep 1 defdance for i in range 3 print 正在跳舞.d i sleep 1 if name main sing...