编写一个多线程程序来生成斐波那契数列
时间: 2023-05-29 08:07:04 浏览: 156
以下是使用Python编写的多线程程序,用于生成斐波那契数列:
```python
import threading
fibonacci_sequence = []
class FibonacciThread(threading.Thread):
def __init__(self, n):
super().__init__()
self.n = n
def run(self):
if self.n == 0:
fibonacci_sequence.append(0)
elif self.n == 1:
fibonacci_sequence.append(1)
else:
fib1 = 0
fib2 = 1
for i in range(2, self.n+1):
fib = fib1 + fib2
fibonacci_sequence.append(fib)
fib1 = fib2
fib2 = fib
def generate_fibonacci_sequence(n):
threads = []
for i in range(n):
thread = FibonacciThread(i)
thread.start()
threads.append(thread)
for thread in threads:
thread.join()
return fibonacci_sequence
if __name__ == '__main__':
n = 10
sequence = generate_fibonacci_sequence(n)
print(sequence)
```
在这个程序中,我们定义了一个FibonacciThread类,用于计算斐波那契数列中的每个元素。在run方法中,我们使用循环来计算斐波那契数列,并将每个元素添加到全局列表fibonacci_sequence中。然后,我们使用generate_fibonacci_sequence函数来创建多个FibonacciThread线程,并等待它们完成。最后,我们打印生成的斐波那契数列。
阅读全文