python中什么模块提供了许多文件处理方法_什么是Python多处理模块的.join()方法做什么?...

了解Python

Multiprocessing(从

PMOTW article开始),并希望对于join()方法正在做什么有一些澄清。

在old tutorial from 2008中,它指出,如果在下面的代码中没有p.join()调用,“子进程将空闲而不是终止,成为僵尸,您必须手动杀死”。

from multiprocessing import Process

def say_hello(name='world'):

print "Hello, %s" % name

p = Process(target=say_hello)

p.start()

p.join()

我添加了PID的打印输出以及一个time.sleep进行测试,据我所知,该过程自己终止:

from multiprocessing import Process

import sys

import time

def say_hello(name='world'):

print "Hello, %s" % name

print 'Starting:', p.name, p.pid

sys.stdout.flush()

print 'Exiting :', p.name, p.pid

sys.stdout.flush()

time.sleep(20)

p = Process(target=say_hello)

p.start()

# no p.join()

20秒内:

936 ttys000 0:00.05 /Library/Frameworks/Python.framework/Versions/2.7/Reso

938 ttys000 0:00.00 /Library/Frameworks/Python.framework/Versions/2.7/Reso

947 ttys001 0:00.13 -bash

20秒后:

947 ttys001 0:00.13 -bash

行为与文件末尾添加的p.join()相同。本周Python模块提供very readable explanation of the module; “等待一个进程已经完成工作并退出,使用join()方法”,但似乎至少OS X正在这样做。

我也想知道方法的名称。 .join()方法是否连接任何东西?它结合一个进程结束吗?或者它只是使用Python的native .join()方法共享一个名称?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值