Я хочу назначить свои вычислительные задания более чем на один процессор, поэтому я выбираю многопроцессорность. Однако результат не тот, который я хочу.python многопроцессорность: процессы не работают
import numpy as np
from multiprocessing import Process
def func(begin,end):
print('*'*5)
print('begin=%d' %(begin))
for i in range(begin,end):
for j in range(10):
myarray[i][j]=1
myarray=np.zeros((12,10))
print(myarray)
for i in range(4):
begin=i*3
end=(i+1)*3
p=Process(target=func,args=(begin,end,))
p.start()
print('*'*5)
print(myarray)
Я думаю, что myarray должен быть всем. Но это совсем не меняется. Зачем? Функция func не изменяет элементы myarray? я попробовал пример по этой ссылке enter link description here
from multiprocessing import Process
def f(name):
print('hello',name)
p=Process(target=f,args=('bob',))
p.start()
Он ничего не показывает на экране. Зачем? Как мне закончить вычисление с помощью python? Может ли кто-нибудь дать способ полностью воспользоваться преимуществами multi-cpus?
Второй сниппет печатает: '('привет', 'боб')' – alfasin
@alfasin Кажется, мне это надо. Но я тестирую этот код, используя python 3.4.3 на win7 и соответствующий код (функция print to statement) с python 2.6.6 на centos6.5 в виртуальной коробке. Ничего не показывать. – dudu
он работает для меня с python3.4 на Mac. – alfasin