day 31 进程的其他方法 进程锁 进程队列

本文深入探讨了进程管理的关键概念,包括进程的方法如.name、.pid、.is_alive()、.terminate(),以及进程间物理隔离的特点。文章还介绍了守护进程、僵尸进程和孤儿进程的概念,并详细讲解了进程锁、数据共享、进程队列的使用,以及生产者消费者模型的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一。进程的其他方法

  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进去的数量相同时,才继续执行

生产者消费者模型:

 

转载于:https://www.cnblogs.com/lw1095950124/p/10267512.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值