По какой-то причине, что я не вижу, этот код выдает ошибку: 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()
Различные строки импорта предназначены для других вещей, которые я использовал с другим кодом, над которым я работаю многопоточность. Это, однако, простой "образец" кода, который я пытаюсь проанализировать, чтобы изучить веревки. Я предполагаю, что у него есть какие-то проблемы с открытием блока, но я не понимаю, почему. Разве 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()
obj = multiprocessing.Pool(8)
а затемobj.close()
чтобы убить его?