ada*_*m b 8 python cpu-usage multiprocessing python-multiprocessing windows-10
我在Windows 7和Windows 10笔记本电脑上都运行了一些代码:
def project(filename):
**Do Something Here**
if __name__ == '__main__':
pool = Pool(processes=4)
results = [pool.apply_async(project, args=(filename,)) for filename in filenamelist]
output = [p.get() for p in results]
print output
Run Code Online (Sandbox Code Playgroud)
两台计算机都是双核/ 4线程,因此它们都应该可以很好地运行4个进程.我遇到的问题是,当我在Windows 10上运行代码时,我会运行4个python进程,但是它们使用0%的cpu并且它们不会输出任何内容,这与Windows 7个数据库不同,它将全部运行4个线程和完美的工作.
如果我不使用多处理,代码在Windows 10笔记本电脑上工作正常,所以问题必须与此相关.使用Python的多处理在Windows 10中不起作用吗?我顺便在两台机器上运行Python 2.7.
[编辑]:Windows 7 pc处理器是i5-650,Windows 10笔记本处理器是i3-2370M
[更新]:我将笔记本电脑还原到Windows 8.1,完全相同的代码按预期运行,这绝对是Windows 10的问题.
[编辑]:我用来生成的filenamelist方法如下,但这在Windows 7上运行正常.
def get_unfinished_files(indir, outdir):
filenamelist = []
for filename in os.listdir(indir):
if filename not in os.listdir(outdir) and filename.endswith('.png'):
filenamelist.append(filename)
return filenamelist
Run Code Online (Sandbox Code Playgroud)
有类似的问题。正如我发现的,这只是我的情况下 python 中的一个错误: https ://bugs.python.org/issue35797
通过venv使用多处理时会发生这种情况。
Bugfix 在 Python 3.7.3 中发布。
| 归档时间: |
|
| 查看次数: |
2543 次 |
| 最近记录: |