windows上用python学习multiprocessing模块的进程池,程序创建了进程池,但是却没用进入子进程?

1.问题描述:
看网课学习python,昨天学到进程池和进程之间的通信。
看老师的视频时运行正确,自己确实没出想象中的效果。
在windows上用python学习multiprocessing模块的进程池,在pycharm中程序创建了进程池,但是却没用进入子进程?但是在命令窗口去可以进入子进程。

            代码:
# 测试进程池的使用
from multiprocessing import Pool
import time, os


def work(num):

    print('咋了?', end='\t')
    print(5*num)
    time.sleep(1)


if __name__ == "__main__":
    print('Parent process %s.' % os.getpid())
    # 定义一个进程池,设置最大进程为4,默认为cpu核心数
    po = Pool(4)
    for i in range(10):
        # 调用apply_saync()方法,apply_saync选择要调用的目标,以及将目标需要的参数
        # 以元组形式传递,每次循环都会用空出来的进程去调用目标。
        po.apply_async(func=work, args=(i,))
    # 关闭进程池,只准许进程从进程池出来,不准进入进程池
    po.close()
    # 主进程等待子进程结束,必须写再close后。
    po.join()
    print('子进程结束')


            然后在pycharm的运行结果是既没有报错也没有执行子进程的指令
            图是这样的:
            ![图片说明](https://img-ask.csdn.net/upload/201901/16/1547605427_367407.png)
           为了给各位大佬提供更多信息,我在循环那debug了下,尽管我目前还看不懂。
            ![图片说明](https://img-ask.csdn.net/upload/201901/16/1547605634_254497.png)


            在Windows的命令窗口下直接运行结果就有了。貌似得到我的结果了。
            ![图片说明](https://img-ask.csdn.net/upload/201901/16/1547605512_956498.png)
            说明:昨天也查了半天资料,说的都是加if __name__ == "__main__":
            来保证正常,可是我还是出问题了!
            请各位大佬指点迷津,拯救一个初学者吧。

我也遇到了同样的问题。。。
https://segmentfault.com/a/1190000013681586
这个地方说是windows创建进程的方式与linux不一样的原因

子进程中报错,而进程中没有异常处理,就直接退出了。

有一些IDE不支持multiprocessing,这个是编辑器的问题,你可以就命令行运行,或者 我用的VS Code也是ok的