Discuss / Python / 子进程没有运行过

子进程没有运行过

Topic source

安羽8023

#1 Created at ... [Delete] [Delete and Lock User]

教程中的这段代码:

from multiprocessing import Pool

import os, time, random

def long_time_task(name):

    print('Run task %s (%s)...' % (name, os.getpid()))

    start = time.time()

    time.sleep(random.random() * 3)

    end = time.time()

    print('Task %s runs %0.2f seconds.' % (name, (end - start)))

if __name__=='__main__':

    print('Parent process %s.' % os.getpid())

    p = Pool(4)

    for i in range(5):

        p.apply_async(long_time_task, args=(i,))

    print('Waiting for all subprocesses done...')

    p.close()

    p.join()

    print('All subprocesses done.')

执行之后只显示:

Parent process 8472.

Waiting for all subprocesses done...

All subprocesses done.

并没有运行子进程的那一段,请问是什么问题

caizishuo

#2 Created at ... [Delete] [Delete and Lock User]

可能你忘记敲join()了

多进程不能使用python自带的idle,要使用其他ide或者直接在命令行里执行,因为idle只支持单进程

应该是IED的问题,直接通过python命令去执行是正常的,直接在命令行输入:python xxx.py

我也遇到了这个问题,我是用Spyder,所以应该要怎么解决呢,上面的回复没太看懂

海滨擎蟹

#6 Created at ... [Delete] [Delete and Lock User]

命令行切换到你创建的文件目录下,输入指令 `python 文件名`,文件名要包括文件后缀 `.py`。

你要是命令行不知道是什么,就自己百度,了解一下基本的指令。


  • 1

Reply