如何在计算范围的n个部分正确地进行计算

时间:2019-05-19 13:48:27

标签: python python-3.x multithreading

我正在尝试多线程计算和从-到-范围内的简单数字的打印。范围是恒定的-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)

您能显示如何为每个线程正确实现动态线程和范围划分吗?还有关于有序打印简单数字的建议。

0 个答案:

没有答案
相关问题