總結

python下多線程的思考

對于資源,加鎖是個重要的環(huán)節(jié)。因為python原生的list,dict等,都是not thread safe的。而Queue,是線程安全的,因此在滿足使用條件下,建議使用隊列

包中的常用方法:

Queue.qsize() 返回隊列的大小

Queue.empty() 如果隊列為空,返回True,反之False

Queue.full() 如果隊列滿了,返回True,反之False

Queue.full 與 maxsize 大小對應

Queue.get([block[, timeout]])獲取隊列,timeout等待時間

創(chuàng)建一個“隊列”對象

多線程示意圖:

進程:一個程序運行起來后,代碼+用到的資源 稱之為進程,它是操作系統(tǒng)分配資源的基本單元。不僅可以通過線程完成多任務,進程也是可以的

進程的狀態(tài)

工作中,任務數往往大于cpu的核數,即一定有一些任務正在執(zhí)行,而另外一些任務在等待cpu進行執(zhí)行,因此導致了有了不同的狀態(tài)

線程之間的操作是無序的

一個線程下面有一個主線程

線程:相當于打開一個瀏覽器

進程:相當于在瀏覽器里面打開多個窗口

實現多任務的手段(方式):

1.多線程

2.多進程

3.協(xié)程

什么是Scrapy框架

Scrapy一個開源和協(xié)作的框架是基于twisted框架開發(fā)而來,twisted是一個流行的事件驅動的python網絡框架。因此Scrapy使用了一種非阻塞(又名異步)的代碼來實現并發(fā)。是用純Python實現一個為了爬取網站數據、提取結構性數據而編寫的應用框架,用途非常廣泛。導入 from multiprocessing import Pool

創(chuàng)建一個進程池:pool = Pool()

pool.apply()? 同步的方法,執(zhí)行效率比較低

apply_async? 是一個異步方法,可以提高任務執(zhí)行的效率

func,對應的任務的函數名稱

args=() , 傳遞參數(元組)

kwds={} , 傳遞參數(字典)

迭代器

迭代是訪問集合元素的一種方式。迭代器是一個可以記住遍歷的位置的對象。迭代器對象從集合的第一個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會后退

可迭代對象?我們已經知道可以對list、tuple、str等類型的數據使用for...in...的循環(huán)語法從其中依次拿到數據進行使用,我們把這樣的過程稱為遍歷,也叫迭代。。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • # Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,844評論 6 427
  • Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列的資...
    葉同學閱讀 11,340評論 0 73
  • 做保險,被別人拒絕是非常常見的,這也是為什么說保險是最難做的銷售之一。保險行業(yè)淘汰率是非常高的,原因很多,但是...
    瀟灑月下梨花白閱讀 660評論 0 2
  • 今天的OH卡,問題是怎么看待用簡書來記錄自己的軌跡。 第一張圖是回歸 我看到幼小的我,有一位長者指引。象征回歸自我...
    雙重奏閱讀 191評論 0 2
  • 學生圈最近流行抽一次性電子煙,沒想到我的班里也出現了這個問題。 【第一部分:事情始末】 先是聽到風聲...
    龍之崛起閱讀 612評論 0 5

友情鏈接更多精彩內容