写一个python多线程示例
时间: 2024-05-08 14:16:58 浏览: 98
对于Python中线程问题的简单讲解
下面是一个简单的 Python 多线程示例,用于计算并输出斐波那契数列中前 20 个数字:
```python
import threading
def fibonacci(n):
if n <= 1:
return n
else:
return (fibonacci(n-1) + fibonacci(n-2))
class FibonacciThread(threading.Thread):
def __init__(self, n):
threading.Thread.__init__(self)
self.n = n
def run(self):
result = fibonacci(self.n)
print("Fibonacci(%d) = %d" % (self.n, result))
threads = []
for i in range(20):
thread = FibonacciThread(i)
threads.append(thread)
thread.start()
for thread in threads:
thread.join()
```
该示例中,我们首先定义了一个计算斐波那契数的函数 `fibonacci`。接下来,我们定义了一个继承自 `threading.Thread` 的子类 `FibonacciThread`,该子类在初始化时接受一个整数参数 `n`,表示要计算的斐波那契数的位置。在 `run` 方法中,我们调用 `fibonacci` 函数计算斐波那契数,并将结果输出。
在主程序中,我们创建了 20 个 `FibonacciThread` 的实例,并将它们添加到一个列表中。然后,我们依次启动这些线程,并等待它们执行完毕。最后,我们输出了每个斐波那契数的值。
在实际应用中,多线程可以用于加速计算密集型任务,如图像处理、数据分析等。但需要注意的是,在多线程编程中,需要注意线程安全问题,如共享数据的同步和互斥等。
阅读全文