python中进程相关问题

fork() Unix/Linux操作系统提供了fork()系统调用
普通函数调用一次返回一次
fork 调用一次返回两次——因为操作系统把当前进程(父进程)复制了一份(子进程),然后分别在父子进程内返回,但是子进程永远返回0,父进程返回子进程id。因为父进程可以fork出很多子进程,要记住子进程id。而子进程可以通过getppid调用父进程id
getpid()得到当前进程id
getppid()得到父进程id

Apache服务器就是由父进程监听端口,当有新的http请求时,fouk出子进程来处理。

multiprocessing模块:
是跨平台版本的多线程模块,其中提供了一个Process类来代表一个进程对象。
p=Process(target = 函数名,args = (‘参数’,))
进程池:
在multiprocessing模块导入Pool。
p = Pool(xx) 执行的进程数 默认是CPU核数
在进程池中异步添加进程:
p.apply_async(函数名,(参数,))
进程间通信:
Queue:
定义写内容的函数:
def write§:
for value in …:
p.put(value)
定义读内容的函数:
def read§:
while True:
p.get()
Pipe:
conn1,conn2 = Pipe()
其中conn1用于读,conn2用于写:
读: 创建Process对象,target传递读的函数
def read(arg):
recvbuf = arg.recv()
print(recv)
写:
conn2.send([ xxxx ])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值