日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

詳解Python的多任務進程_python

作者:小Pawn爺 ? 更新時間: 2022-03-30 編程語言

1.基本概念

定義 含義
并發: concurrency,同一時刻只能有一條指令執行,但是多個線程的對應的指令被快速輪換地執行
并行 parallel,同一時刻,有多條指令在多個處理器上同時執行,并行必須要依賴于多個處理器
阻塞 程序未得到所需計算資源時被掛起的狀態
非阻塞 程序在等待某操作過程中,自身不被阻塞,可以繼續處理其他的事情
同步 不同程序單元為了完成某個任務,在執行過程中需靠某種通信方式以協調一致,我們稱這些程序單元是同步執行的
異步 為完成某個任務,不同程序單元之間過程中無需通信協調,也能完成任務的方式,不相關的程序單元之間可以是異步的

2.線程和進程比較

名稱 含義 應用場景
多線程 系統進行運算調度的最小單位 IO密集型(磁盤IO網絡IO數據庫IO等,譬如爬蟲,網站開發等)
多進程 系統進行資源分配的最小單位 CPU密集型(大數據分析,機器學習等)
多協程 程序員級別的調度 高并發的場景

3.協程和線程的比較

多線程:

  • 多個線程切換需要頻繁的加鎖解鎖,
  • 需要保存或者恢復cpu上下文,
  • 每個線程還需要有緩存cache等數據

多協程:

  • 協程的切換是在單線程里實現任務的切換
  • 且協程擁有自己的寄存器上下文和棧,無需線程上下文切換的開銷
  • 無需原子操作鎖定及同步的開銷

總結

原文鏈接:https://blog.csdn.net/weixin_44689630/article/details/122530757

欄目分類
最近更新