python爬虫应用实战-如何爬取好看的小姐姐照片?
生活随笔
收集整理的這篇文章主要介紹了
python爬虫应用实战-如何爬取好看的小姐姐照片?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
線程鎖
Threading模塊為我們提供了一個類,Threading.Lock鎖。我們創建該類的對象,在線程函數執行之前,“搶占”該鎖,執行完成之后,“釋放”該鎖,則我們確保了每次只有一個線程占有該鎖。這時對一個公共對象進行操作,則不會發生線程不安全的現象了。
當多個線程同時訪問一個數據庫時,需要加鎖,排隊變成單線程,一個一個執行。加鎖可以避免并發時導致的邏輯錯誤,每當一個線程a要訪問共享數據域時,必須先獲得鎖定;如果已經有別的線程b獲得了鎖定,那么就讓線程a暫停,也就是同步阻塞;等到線程b執行完畢,釋放鎖之后,再讓線程a繼續。
線程鎖的基本語法如下:
lock = threading.Lock() lock.acquire() # 上鎖 lock.release() # 釋放鎖threading.Lock
實現原始鎖對象的類。一旦一個線程獲得一個鎖,會阻塞隨后嘗試獲得該鎖的線程,直到它被釋放;任何線程都可以釋放它。
原始鎖是一個在鎖定時不屬于特定線程的同步基元組件。在python中,它是能用最低級的同步基元組件,由_thread拓展模塊直接實現。
acquire(blocking=True, timeout=-1)
可以阻塞或者非阻塞的獲得鎖。
當調用參數blocking設置為True,阻塞直到鎖被釋放,然后將鎖鎖定并返回True。
當blocking設置為False時,將不會發生阻塞。
當浮點型timeout參數設置為正值時,則阻塞特定的秒數。當timeout為-1時,則表示無限等待。
總結
以上是生活随笔為你收集整理的python爬虫应用实战-如何爬取好看的小姐姐照片?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬虫应用实战-如何爬取表情进
- 下一篇: Python爬虫应用实战-网站数据爬取及