python多线程的使用

python多线程的使用

后续还会更新其他方法实现的多线程。

Queue实现多线程

通过队列实现多线程

  1. 启动一定数量的线程(个数自己定义),线程都是从队列中获取数据去执行的。
  2. 依次往队列中加入数据。
#启动队列
#my_threading.py
from queue import Queue
from Thread_Worker import Thread_Worker
from Thread_Task import get_task
THREAD_NUM = 10
queue_task = Queue()    #一个队列
for thread_num in range(THREAD_NUM):
    #启动一定数量的线程
    thread_work = Thread_Worker(queue_task)
    thread_work.daemon = True   #设置为守护线程,在进程退出时不用等待这个线程退出。
    thread_work.start()

for each_task in get_task():
    #往队列中加入任务数据
    queue_task.put(each_task)

queue_task.join()
#Thread_Worker.py
from threading import Thread
import time

def start_task(task_num):
    #自定义的需要多线程跑的任务
    print("this is task {}".format(task_num))
    time.sleep(5)
    print("task {} is done".format(task_num))
    
class Thread_Worker(Thread):
    
    def __init__(self, queue_task):
        super(Thread_Worker, self).__init__()
        self.queue_task = queue_task
        
    def run(self):
        while True:
            task = self.queue_task.get()
            start_task(task)
            self.queue_task.task_done() 

#### 标题

#在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号
#Thread_Task.py
def get_task():
    for i in range(20):
        yield(i)

输出

python my_threading.py
python my_threading.py
输出结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容