python多线程求素数
时间: 2024-04-24 20:17:22 浏览: 95
以下是使用Python多线程求素数的示例代码:
```python
import threading
def is_prime(num):
"""
判断一个数是否为素数
"""
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def find_prime(start, end, result):
"""
在[start, end)范围内查找素数,并将结果存入result列表中
"""
primes = []
for i in range(start, end):
if is_prime(i):
primes.append(i)
result.extend(primes)
def multi_thread_find_prime(n, num_threads=4):
"""
使用多线程查找[2, n)范围内的素数
"""
result = []
threads = []
# 将[2, n)范围分成num_threads个区间,每个区间由一个线程处理
interval = n // num_threads
for i in range(num_threads):
start = 2 + i * interval
end = n if i == num_threads - 1 else start + interval
t = threading.Thread(target=find_prime, args=(start, end, result))
threads.append(t)
t.start()
# 等待所有线程结束
for t in threads:
t.join()
return result
# 示例
primes = multi_thread_find_prime(100)
print(primes)
```
该示例代码使用了Python的`threading`模块实现了多线程查找素数的功能。具体来说,它将[2, n)范围分成了若干个区间,每个区间由一个线程处理。每个线程使用`find_prime`函数查找该区间内的素数,并将结果存入`result`列表中。最后,主线程等待所有线程结束后,将所有线程的结果合并返回。
阅读全文