进程线程相关知识

进程线程相关知识

进程间的通信方式之一:队列

进程共享数据的方式:匿名管道、无名管道、内存映射

Queue:只能在Process()创建出来的进程间通信。

Manager().Queue():用POOL进程池创建的进程,需要用这个来创建队列。

线程的队列:

导入方式是python3:from queue import Queue
    python2:from Queue import Queue
注意线程的队列和进程的队列不一样!

进程池

使用进程池的话,主进程不会等待子进程结束才结束,所以要在主进程中使用pool.close()pool.join()

Process、threading

用这两个模块创建出来的进程和线程,主进程会等所有的子进程(或主线程会等所有的子线程)结束之后才会结束主进程(主线程);

主进程不结束的原因:

如果子进程挂了,父进程没有收回内存空间,则这样的子进程称为僵尸进程;
如果父进程挂了,子进程没有挂,则子进程称为孤儿进程(1号进程负责处理这些孤儿进程)

Linux里的PID=0和PID=1的进程

0号进程负责切换进程
1号进程负责直接或间接创建所有的子进程(1号进程不会关闭,否则操作系统就关机了)

进程和线程的执行顺序

进程间的执行顺序和线程间的执行顺序都是由操作系统来决定的。

关于全局变量

对于进程而言:各个进程之间的全局变量不共享,函数里面的代码也是不共享的。
对于线程而言:线程之间的全局变量是共享的(但是函数里面的代码是不共享的,每个线程独立一份),所以非全局 变量不需要加锁,因为没必要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值