随笔 - 27  文章 - 2  评论 - 0  阅读 - 25912

Python3 异步编程之进程与线程

Python3 异步编程之进程与线程-1

一、了解进程间通信

  • 进程间通信

  • 进程

  • 线程

  • 线程 vs 进程

  • IO模型

  • 并发 vs 并行

  • 异步 vs 同步

     

二、多线程与多进程的用法

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

  • GIL

  • 多线程

  • 多进程

 

三、协程的好处与用法

  • 协程

  • yield

  • yield from

 

四、进程间通信-IPC 01

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

  • 消息队列

  • 信号量

  • 共享存储

  • Socket

  • Streams

    相关定义:

        管道:

                        1.png

        命名管道:

                       2.png

        消息队列:

                        3.png

        信号量:

                        4.png

        共享内存:

                        5.png

        元子操作:

                        6.png

 

五、进程特征

  • 动态性

  • 并发性

  • 独立性

  • 异步性

 

六、进程状态

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

  • 就绪 ready     等待CPU

  • 阻塞 blocked   暂时不具备运行条件,即使CPU空闲

    相关定义:

    进程控制块:

                     7.png

                     

                    8.png

       Unix系统中的几个进程控制操作:

                      9.png

 

       线程:

                    10.png

 

      线程之间共享:

                    11.png

 

      线程的独立信息:

                    12.png

 

      线程的创建:

                    13.png

 

七、了解进程间通信02

  I/O模型

  • 阻塞式

  • 非阻塞式

  • I/O复用

  • 信号驱动式

  • 异步I/O

      相关定义:

        I/O操作的两个阶段:

                   14.png

                   15.png

                
      阻塞式I/O:

                   16.png

 

       非阻塞式I/O:

                   17.png

      

       I/O复用:

                   18.png

                   19.png

      

      信号驱动式:

                  20.png

 

      异步I/O:

                 21.png

                 22.png

 

      并发和并行:

                23.png

 

      异步与同步:

               24.png

 

      异步的实现:

              25.png

 

   处理多任务操作:

  • 多进程/多线程

  • I/O模型

  • 协程

 多线程、多进程实现模式:master  worker模式

 master分配任务 多进程缺点:创建进程资源需要多frok()函数 多线程缺点:某个线程出问题,整个挂掉

            27.png

            28.png

            29.png

posted on   杜景喜  阅读(640)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示