python之进程

进程

通俗理解一个运行起来的程序或者软件就叫做进程,每启动一个进程,操作系统都需要给对应的进程分配运行资源,运行资源是让线程执行代码的时候使用,所以进程是操作系统分配资源的基本单位,默认一个进程只有一个线程,这个线程是主线程,进程只提供资源,真正干活的是线程。

根据进程编号杀死指定进程

os.kill(os.getpid(),9)

多进程之间不共享全局变量,多进程间的全局变量相当于资源的拷贝

守护主进程 主进程退出后 子进程直接销毁,不在执行子进程中的代码

process.setdaemon = True

进程间的通信Queue

创建消息队列 如果指定大小,那么消息队列只能放入指定个数的大小,如果不指定队列的大小则没有上限

queue = multiprocessing.Queue(3)

向队列放入数据

queue.put(5)

坑点:put放入数据以后,使用empty检查队列是否为空的时候,返回的值不对

解决办法1、放入数据后使用延时,保证数据写入完成后再检查队列是否为空

解决方法2、使用qsize()判断队列的个数,得知是否为空

if queue.qsize() == 0:
    print("空")
else:
    print("不为空")
  • 判断队列是否满了
  • queue.full()
  • 提示:使用put放入数据,如果队列满了,则需要等待有空闲位置才能放入数据
  • 提示:使用put_notwait,放入数据的时候不需要等待,如果队列满了,不能放入数据则奔溃,抛出队列满了的异常
  • 获取数据
  • queue.get()
  • 提示: 如果队列为空, 再获取数据需要等待,队列里面有数据了才能再获取数据
  • 提示: get_nowait获取数据的时候不需要等待,如果队列为空,那么会崩溃抛出队列为空的异常
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值