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

发布时间:2019-09-26 07:32:38编辑:auto阅读(1786)

    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

        

          

关键字