python - 多处理抛出属性错误,为什么?

标签 python multithreading python-2.7 with-statement

由于某种我看不到的原因,此代码抛出错误:AttributeError: __exit__

代码很简单:

import re, string, math, numpy, time, os.path, itertools, matplotlib, subprocess, shutil, sys, scipy.spatial.distance, multiprocessing, threading, ctypes
from functools import partial
from multiprocessing.sharedctypes import Value, Array
from multiprocessing import Process, Lock

def main():
    with multiprocessing.Pool(8) as myPool:
        print("1")

if __name__ == '__main__':
   main()

各种导入行用于我正在处理多线程的其他代码中使用的其他内容。然而,这是我试图分析以了解诀窍的简单“示例”代码。我认为打开 with block 时遇到某种问题,但我不明白为什么。 Python 2.7 不以这种方式实现多处理吗?这都是我见过的例子。我应该有其他方法来实现这样的事情吗?

我希望能够向一组线程抛出一堆输入略有不同的函数调用并将它们返回,但如果我无法启动线程,那还有很长的路要走。

最佳答案

根据 2.7 标准进行一些简单的修改,这样就可以了。

import  multiprocessing

def somefunc(x):
    print(x)

def main():
    myPool = multiprocessing.Pool(8):
    myPool.map(range(8))

if __name__ == '__main__':
   main()

关于python - 多处理抛出属性错误,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51619618/

相关文章:

python - 反规范化 tensorflow

JAVA GC OverheadLimit 错误

java - 如何对 Java EE 数据库审计记录器进行多线程处理?

python - 访问类实例的父模块的 __all__ 列表

python - 在 Python 中将原始推文字符串转换为 JSON 对象

python - 将 Python Flask-sqlalchemy 查询结果作为列表理解进行迭代

python - 等待分配给变量的协程不起作用?

python - Python 中的线程/队列

macos - 无法在 Mac 上卸载 Numpy

python - python3中的导入更改