中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python3爬蟲中怎么防止多線程出錯

發布時間:2020-11-25 09:37:06 來源:億速云 閱讀:227 作者:小新 欄目:編程語言

小編給大家分享一下python3爬蟲中怎么防止多線程出錯,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

python線程的事件用于主線程控制其他線程的執行,事件是一個簡單的線程同步對象,其主要提供以下幾個方法:

  • clear 將flag設置為“False”

  • set 將flag設置為“True”

  • is_set 判斷是否設置了flag

  • wait 會一直監聽flag,如果沒有檢測到flag就一直處于阻塞狀態

事件處理的機制:全局定義了一個“Flag”,當flag值為“False”,那么event.wait()就會阻塞,當flag值為“True”,那么event.wait()便不再阻塞。

#利用Event類模擬紅綠燈
import threading
import time
 
event = threading.Event()
 
 
def lighter():
    count = 0
    event.set()     #初始值為綠燈
    while True:
        if 5 < count <=10 :
            event.clear()  # 紅燈,清除標志位
            print("\33[41;1mred light is on...\033[0m")
        elif count > 10:
            event.set()  # 綠燈,設置標志位
            count = 0
        else:
            print("\33[42;1mgreen light is on...\033[0m")
 
        time.sleep(1)
        count += 1
 
def car(name):
    while True:
        if event.is_set():      #判斷是否設置了標志位
            print("[%s] running..."%name)
            time.sleep(1)
        else:
            print("[%s] sees red light,waiting..."%name)
            event.wait()
            print("[%s] green light is on,start going..."%name)
 
light = threading.Thread(target=lighter,)
light.start()
 
car = threading.Thread(target=car,args=("MINI",))
car.start()

以上是“python3爬蟲中怎么防止多線程出錯”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜昌市| 修水县| 改则县| 九江市| 贡嘎县| 区。| 平乐县| 日喀则市| 南部县| 宁化县| 平遥县| 甘孜县| 云和县| 泸州市| 奉贤区| 荣昌县| 五常市| 石城县| 伊吾县| 太仆寺旗| 巴塘县| 宝鸡市| 沧州市| 富锦市| 罗山县| 内江市| 玉林市| 伊川县| 湘潭县| 卫辉市| 铜山县| 孟村| 德令哈市| 灵川县| 哈尔滨市| 平度市| 友谊县| 繁峙县| 南木林县| 平舆县| 富平县|