Python-多线程执行代码

导包;

import Queue
import threading

直接上代码:

class ReportThreadTask(object):
    task_queue = Queue.Queue()

    def __init__(self):
        self.immediate_thread = None
        self.start()

    def start(self):
        self.immediate_thread = threading.Thread(target=self._exec_report_thread)
        self.immediate_thread.daemon = True
        self.immediate_thread.start()

    def _exec_report_thread(self):
        while True:
            queue_len = self.task_queue.queue
            if queue_len:
                task = self.task_queue.get(timeout=5)
                if task:
                    try:
                        # 执行线程任务
                pring('1111111')  
                    except Exception, e:
                        logging.error("immediate report except {0}".format(e))
            time.sleep(1)

    @classmethod
    def add_task(cls, task):
        cls.task_queue.put(task)

直接调用即可:

rtt = ReportThreadTask()
rtt.add_task(params)

  

posted @ 2020-08-14 18:47  你的小可爱吖  阅读(970)  评论(0编辑  收藏  举报