Я довольно новичок в Python Multiprocessing, и я наткнулся на учебник и, следовательно, попытался проверить его многопроцессорность. Здесь процессы не прекращаются. они бегут навсегда. что не так.? Я читал, что, когда необязательные аргументы верны, процесс не заканчивается. поэтому я поставил там пустое заявление. но процесс все же не заканчивается. Пожалуйста, порекомендуйте. Благодарю. Машина я использую имеет Python 2.7.6 Вот мой кодПример многопроцессорности Python. никогда не заканчивается
from multiprocessing import Process
from Queue import Empty,Queue
import math
def isprime(n):
if not isinstance(n,int):
raise TypeError("argument is not of int type")
if n<2:
return False
if n==2:
return True
max= int(math.ceil(math.sqrt(n)))
i=2
while i<=max:
if n%i==0:
return False
return True
def sum_primes(n):
return sum([x for x in xrange(2,n) if isprime(x)])
def do_work(q):
while True:
try:
x=q.get(block=False)
print sum_primes(x)
except Empty:
break
if __name__=="__main__":
work_queue=Queue()
for i in range (100000,5000000,100000):
work_queue.put(i)
processes=[Process(target=do_work, args=(work_queue,)) for i in range(8)]
for p in processes:
p.start()
for p in processes:
p.join()
пытаются сделать свои процессы демонами путем добавления producer.daemon = True перед вызовом функции create.start() и посмотреть, выйдет ли скрипт – haifzhan