我正在尝试多线程计算和从-到-范围内的简单数字的打印。范围是恒定的-100000000,线程数由用户指定。
如果n个线程然后将范围除以n,我尝试做简单的事情。但这不是解决方案,即使使用这种方法,我的线程也无法正常工作。正如我在想的那样,结果的打印顺序不是按升序排列的,但似乎线程也无法计算出其划分范围内的所有简单数字。
import threading
import time
result_list = []
first = 1
last = 100000
t = 2
def parallel(t):
if t == 2:
thread1 = threading.Thread(target=simple, args=(first, last//t))
thread2 = threading.Thread(target=simple, args=(last//t, last))
thread1.start()
thread2.start()
def simple(first, last):
for i in range(first, last + 1):
if i > 1:
for j in range(2, i):
if i % j == 0:
break
else:
print(i)
start = time.time()
parallel(t)
end = time.time()
result = end - start
result_list.append(result)
print(result_list)
您能显示如何为每个线程正确实现动态线程和范围划分吗?还有关于有序打印简单数字的建议。