python 多執行緒(十三 1)

2021-10-20 00:13:20 字數 1852 閱讀 3547

'''玩遊戲'''

for i in range(3):

print('玩遊戲 .....')

time.sleep(.5)

def network():

'''上網'''

for i in range(3):

print('上網.....')

time.sleep(.5)

#呼叫#單任務的表現:當25行**,play函式呼叫沒有執行完畢之前。26行不會被執行,也就是會阻塞。。

play()

network()

答案是肯定的,可以使用多執行緒來解決這個問題!也可以通過任務管理器檢視各個程序中的執行緒:單擊所在的菜單行|右鍵|選擇列|選擇執行緒

import time

#匯入執行緒

import threading

def play():

'''玩遊戲'''

for i in range(3):

print('玩遊戲 .....')

time.sleep(.5)

def network():

'''上網'''

for i in range(3):

print('上網.....')

time.sleep(.5)

#通過方法呼叫

def run():

#這個執行,是單任務

# play()

# network()

#下面執行的,是多工

t1=threading.thread(target=play) #建立執行緒物件,指定目標

t2=threading.thread(target=network)#建立執行緒物件,指定目標

t1.start() #即可啟動任務, 任務內容為建立物件時執行的部分(函式)

t2.start()

if __name__=='__main__':

run()

效果:

利用了threading模組thread類去建立物件,這個稱之為多執行緒

並行: 真的多工

併發: 假的多工

cpu: 執行電腦上的程式

程式 程式 程式

任務 任務 任務

好像看上去,這三個程式是同時在執行的。

具體說明:

電腦:單核cpu,只有乙個cpu,只有它在做事。

總之:python中利用threading多執行緒,完成多工,是併發,並且是假的多工。

cpython直譯器 > gil 全域性直譯器鎖 > 限制了python的多執行緒完成並行.

Python 多執行緒 1

import thread import time 為執行緒定義乙個函式 defprint time threadname,delay count 0while count 3 time.sleep delay count 1print threadname,time.ctime 建立兩個執行緒 t...

Python多執行緒(1)新增執行緒

基本指令 新增執行緒 import threading defthread job print this is an added thread,number is s n threading.current thread defmain added threading threading.threa...

python多執行緒 python多執行緒

通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...