import time
from multiprocessing import Process, Queue
q = Queue()
class AddPrime(Process):
def init(self,start):
super().init()
self.prime = []
self.start = start
def is_prime(self, num):
if num <= 1:
return False
for i in range(2, num // 2 + 1):
if num % i == 0:
return False
return True
def run(self):
for i in range(self.start, self.start + 25000):
if self.is_prime(i):
self.prime.append(i)
n = sum(self.prime)
q.put(n)
if name == 'main':
begin = time.time()
jobs = []
for i in [1, 25001, 50001, 75001]:
p = AddPrime(i)
jobs.append(p)
p.start()
[i.join() for i in jobs]
while not q.empty():
result += q.get()
print(result)
print("用时:",time.time() - begin)
你定义的类属性start和Process自己的类方法start()重名了,所以进程启动不了,建议把类属性改名