爬蟲 多工執行緒

2021-10-06 22:11:09 字數 1550 閱讀 1642

有很多的場景中的事情是同時進⾏的,⽐如開⻋的時候 ⼿和腳共同來駕駛汽 ⻋,再⽐如唱歌跳舞也是同時進⾏的。

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...