创建一个多线程任务代码
时间: 2023-07-26 16:05:25 浏览: 90
好的,以下是一个简单的多线程任务代码示例,它使用Python的Thread和Queue模块:
```python
import threading
import queue
# 定义一个任务函数,这个函数会将传入的数字加倍并返回
def task(num):
return num * 2
# 定义一个工作线程函数
def worker(in_queue, out_queue):
while True:
# 从输入队列中获取任务
num = in_queue.get()
# 如果输入队列为空,说明所有任务都已经完成,退出循环
if num is None:
break
# 执行任务
result = task(num)
# 将结果放入输出队列
out_queue.put(result)
# 创建任务队列和结果队列
task_queue = queue.Queue()
result_queue = queue.Queue()
# 启动5个工作线程
threads = []
for i in range(5):
t = threading.Thread(target=worker, args=(task_queue, result_queue))
t.start()
threads.append(t)
# 向任务队列中添加任务
for i in range(10):
task_queue.put(i)
# 添加任务完成标识符
for i in range(5):
task_queue.put(None)
# 等待所有工作线程完成
for t in threads:
t.join()
# 从结果队列中获取结果并打印
while not result_queue.empty():
result = result_queue.get()
print(result)
```
这个代码创建了5个工作线程,它们从任务队列中获取任务并执行,将结果放入结果队列中。在主线程中,我们向任务队列中添加10个任务,并添加5个任务完成标识符。然后等待所有工作线程完成,并从结果队列中获取结果并打印。
阅读全文