1. 程式人生 > >Python3 異步編程之進程與線程

Python3 異步編程之進程與線程

ext 存儲 images 暫時 命名管道 cpu ima tro tex

Python3 異步編程之進程與線程-1

一、了解進程間通信

  • 進程間通信

  • 進程

  • 線程

  • 線程 vs 進程

  • IO模型

  • 並發 vs 並行

  • 異步 vs 同步

二、多線程與多進程的用法

  • 計算密集型 vs I/O密集型

  • GIL

  • 多線程

  • 多進程

三、協程的好處與用法

  • 協程

  • yield

  • yield from

四、進程間通信-IPC 01

  • 管道:無名管道和命名管道(FIFO)

  • 消息隊列

  • 信號量

  • 共享存儲

  • Socket

  • Streams

相關定義:

管道:

技術分享圖片

命名管道:

技術分享圖片

消息隊列:

技術分享圖片

信號量:

技術分享圖片

共享內存:

技術分享圖片

元子操作:

技術分享圖片

五、進程特征

  • 動態性

  • 並發性

  • 獨立性

  • 異步性

六、進程狀態

  • 運行 running 占用了CPU正在運行

  • 就緒 ready 等待CPU

  • 阻塞 blocked 暫時不具備運行條件,即使CPU空閑

    相關定義:

    進程控制塊:

    技術分享圖片

技術分享圖片

Unix系統中的幾個進程控制操作:

技術分享圖片

線程:

技術分享圖片

線程之間共享:

技術分享圖片

線程的獨立信息:

技術分享圖片

線程的創建:

技術分享圖片

七、了解進程間通信02

I/O模型

  • 阻塞式

  • 非阻塞式

  • I/O復用

  • 信號驅動式

  • 異步I/O

相關定義:

I/O操作的兩個階段:

技術分享圖片

技術分享圖片


阻塞式I/O:

技術分享圖片

非阻塞式I/O:

技術分享圖片

I/O復用:

技術分享圖片

技術分享圖片

信號驅動式:

技術分享圖片

異步I/O:

技術分享圖片

技術分享圖片

並發和並行:

技術分享圖片

異步與同步:

技術分享圖片

異步的實現:

技術分享圖片

處理多任務操作:

  • 多進程/多線程

  • I/O模型

  • 協程

多線程、多進程實現模式:master worker模式

master分配任務 多進程缺點:創建進程資源需要多frok()函數 多線程缺點:某個線程出問題,整個掛掉

技術分享圖片

技術分享圖片

技術分享圖片

Python3 異步編程之進程與線程