python写一个线程池线程一打印12345 线程2打印23456 线程3打印34567
时间: 2024-10-22 19:12:15 浏览: 15
详解python中的线程与线程池
在Python中,你可以通过继承自`threading.Thread`类并覆盖`run()`方法来创建自定义的线程。然后将这些线程加入到线程池中。这里是一个简单的示例,展示了如何编写三个分别打印数字1-5、2-6和3-7的线程:
```python
import threading
from queue import Queue
# 定义任务队列
task_queue = Queue()
def task_runner(thread_num, start, end):
def run():
for i in range(start, end + 1):
print(f"{thread_num * 1000 + i}", end='') # 打印线程号与数字
print() # 结束一行
thread = threading.Thread(target=run)
thread.start()
task_queue.put(thread)
# 创建线程并放入队列
threads = []
threads.append(task_runner(1, 1, 5))
threads.append(task_runner(2, 2, 6))
threads.append(task_runner(3, 3, 7))
# 启动所有线程
for thread in threads:
thread.join()
# 主线程结束前等待所有线程完成
while not task_queue.empty():
task_queue.get().join()
```
在这个代码中,我们首先定义了一个任务队列`task_queue`,然后创建了三个线程,它们各自有各自的打印范围。每个线程启动后会将自己的引用放入队列中。主线程通过检查队列是否为空来判断是否有未完成的线程。
阅读全文