首页
社区
课程
招聘
[求助]python多进程multiprocessing启动子进程,子进程没有反应求助
发表于: 2017-11-16 16:02 5560

[求助]python多进程multiprocessing启动子进程,子进程没有反应求助

2017-11-16 16:02
5560
# -*- coding: cp936 -*-
import os
import multiprocessing
def run_proc(name):
    print "child process %s (%d) Running..." % (name,os.getpid())
if __name__ == "__main__":
    print "parent process %s" % os.getpid()
    for i in range(5):
        p=multiprocessing.Process(target=run_proc,args=(str(i),))
        print "Process will start"
        p.start()
    p.join()
    print "process end"
运行结果如下:
>>> 
parent process 11628
Process will start
Process will start
Process will start
Process will start
Process will start
process end

子进程没有运行啊,求助啊谢谢啊!!!!

按照一楼兄弟修改了一下也是不行啊



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 6499
活跃值: (3117)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
话说,这样竟然不报错?这里的 p.join() 应该在当前环境里没有这个变量吧

没有执行的原因是没有正确的执行等待,你需要把所有执行的进程 p 加入一个数组,然后来遍历等待
比如
# -*- coding: cp936 -*-
import os
import multiprocessing
def run_proc(name):
    print "child process %s (%d) Running..." % (name,os.getpid())
if __name__ == "__main__":
    print "parent process %s" % os.getpid()
    ps = []
    for i in range(5):
        p=multiprocessing.Process(target=run_proc,args=(str(i),))
        print "Process will start"
        p.start()
        ps.append(p)
    for p in ps:
        p.join()
    print "process end"


2017-11-16 18:05
0
雪    币: 139
活跃值: (111)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
试试subprocess?  multiprocessing和平台的具体实现有关,也许Windows上的实现有问题?

                proc  =  subprocess.Popen(  fullCommand,  shell=False,  stdout=subprocess.PIPE,  stderr=subprocess.PIPE  )
                m_output,  m_error  =  proc.communicate(  )
                m_result  =  proc.returncode
2017-11-17 05:28
0
雪    币: 171
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Kisesy 话说,这样竟然不报错?这里的 p.join() 应该在当前环境里没有这个变量吧没有执行的原因是没有正确的执行等待,你需要把所有执行的进程 p 加入一个数组,然后来遍历等待比如# -*- coding: ...
按照你的代码执行也是不行啊,
2017-11-17 20:05
0
游客
登录 | 注册 方可回帖
返回
//