Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多处理在.get()之后停止_Python_Multiprocessing_Python Multiprocessing - Fatal编程技术网

Python 多处理在.get()之后停止

Python 多处理在.get()之后停止,python,multiprocessing,python-multiprocessing,Python,Multiprocessing,Python Multiprocessing,我试图理解python中的多处理如何工作,并且遇到了一些问题。 例如: import multiprocessing def func(): return 1 p = multiprocessing.Pool() result = p.apply_async(func).get() 调用.get()函数时,代码被卡住了。我做错了什么?如果 因此,现在您的代码必须如下所示 import multiprocessing def func(): return 1 if __n

我试图理解python中的
多处理如何工作,并且遇到了一些问题。
例如:

import multiprocessing

def func():
    return 1

p = multiprocessing.Pool()
result = p.apply_async(func).get()

调用
.get()
函数时,代码被卡住了。我做错了什么?

如果

因此,现在您的代码必须如下所示

import multiprocessing

def func():
    return 1

if __name__ == "__main__":
    p = multiprocessing.Pool()
    result = p.apply_async(func).get()

如果将其作为导入调用,将导致新进程的无限序列。并将它们添加到
if
块中,因为
if
语句在导入期间不会执行。

我没有足够的详细信息来确切知道问题所在。 但我有一个很强的猜测,那就是

p = multiprocessing.Pool()
result = p.apply_async(func).get()
在函数内部,它将解决您的问题

试试这个:

import multiprocessing

def func():
    return 1

def main():
    p = multiprocessing.Pool()
    result = p.apply_async(func).get()
    print(result)

if __name__ == '__main__':
    main()

告诉我它是否有效:)

您使用的是什么操作系统?请参阅多处理中的主模块安全导入。您需要get()做什么?试着删除它,看看它是否工作。如果操作系统是Windows,你只需要这个,这就是为什么我问他们使用的是什么操作系统