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获取数据的时候不需要等待,如果队列为空,那么会崩溃抛出队列为空的异常

猜你喜欢

转载自blog.csdn.net/s201314yh/article/details/79982403
今日推荐