• 并发 --- 2 进程的方法,进程锁 守护进程 数据共享 进程队列, joinablequeue模型


    一.进程的其他方法

      1.   .name      进程名   (可指定)

      2.  .pid     进程号

      3.   os.getpid         在什么位置就是什么的进程号

      4.   .is_alive()     判断子进程是否还活着

      5.    .terminate()       给操作系统发出结束进程的信号

    二 。进程之间是物理隔离的

    三. 守护进程

      .daemon = True    设置成为守护进程

              必须写在 start 之前

        跟着主进程的结束而结束

    四.僵尸进程和孤儿进程

      1.僵尸进程(有害):一个进程使用fork创建子进程,如果子进程退出,

               而父进程并没有调用wait或waitpid获取子进程的状态信息,

               那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程

      2.孤儿进程(无害):个父进程退出,而它的一个或多个子进程还在运行,

         那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,

         并由init进程对它们完成状态收集工作

    五.进程锁/互斥锁/同步锁    锁名 = Lock()

      1.    锁名.acquire()

        锁住部分(串行)

        锁名.release()

      2.    with  锁名

          锁住部分

    抢票实例:

     六.数据共享    Manager

    七.进程队列 (先进先出)   

       队列名 = Queue (队列长度)

      1.   .put ()   放值

      2.   .get()     取值

      3.   防止阻塞   (try ...except)

        超出时    .put_nowait()

        取空时    .get_nowait()

      4.  .qsize()   当前队列有多少数据

      5.   .full()     是否满了   (Ture/False) 不可靠

      6.   .empty()     是否空了   (Ture/False) 不可靠

     生产者消费者模型:

    八.  Joinablequeue模型    队列有返回 

        队列名 =  Joinablequeue(队列长度) 

        队列名.task_done()    #给队列发送一个取出的这个任务已经处理完毕的信号

        队列名.join() #就等着task_done()信号的数量,

              和我put进去的数量相同时,才继续执行

    生产者消费者模型:

  • 相关阅读:
    排序方法之冒泡排序
    JAVA浮点数的范围 和精度
    史上最全的SPRING注解
    ETL应用:使用Pro*C写入文件信息入库的方法
    MySQL查询优化器工作原理解析
    php通过Mysqli和PDO连接mysql数据详解
    PHP实现各种经典算法
    http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码
    程序中使用ajax时,type为put,或者delete时在 IIS上没效果,发生HTTP Error 405.0
    linux定时任务crontab
  • 原文地址:https://www.cnblogs.com/sc-1067178406/p/10250739.html
Copyright © 2020-2023  润新知