多线程/多处理以下代码片段的最佳方法是什么?
摘要:素数从3 ......及以后找到 . 然后将每个素数附加到数组 primes[]
,其中,找到与前一个素数的间隙 . 连续的最长偶数序列将打印到控制台 .
我已经阅读了有关此主题的其他问题和说明,但我很困惑,不知道从哪里开始 .
from timeit import default_timer as timer
start = timer()
gap = 0
primes = []
for i in range(3,999999999,2):
prime_check = True
for j in range(0,int(len(primes)/2.9)):
if(i%primes[j] == 0):
prime_check = False
break
if(prime_check):
primes.append(i)
#print("{0} is {1}".format(i,prime_check))
if(len(primes)>1):
if(primes[-1] - primes[-2] > gap):
gap = primes[-1] - primes[-2]
end = timer()
print("Gap: {0} ({1}, {2}) Time: {3:.2f}s".format(gap,primes[-2],primes[-1],end-start))
1 回答
我将采用的方法是计算素数,创建一个间隔的每两个连续素数的队列,然后创建线程来计算间隙 . 由于计算素数是一个连续的过程,因此在该部分上使用线程更加困难 .