Python 线程优先级,出列顺序,先进先出,先进后出 代码实现

Python 线程优先级,出列顺序,先进先出,先进后出 代码实现,第1张

概述importqueueimportthreadingimporttimeexitFlag=0classmyThread(threading.Thread):def__init__(self,threadID,name,m_queue):threading.Thread.__init__(self)self.threadID=threadID#线程IDself.name=nam
import queueimport threadingimport timeexitFlag =0class myThread(threading.Thread):    def __init__(self, threadID, name, m_queue):        threading.Thread.__init__(self)        self.threadID= threadID               #线程ID        self.name = name                      #线程名称        self.m_queue =m_queue                             #出列顺序    def run(self):        print("开始线程" + self.name)        process_data(self.name, self.m_queue)   #执行工作函数        print("结束线程" + self.name)#执行工作函数def process_data(threadname, m_queue):   #传入线程名称以及出列顺序    while not exitFlag:   #判断线程是否执行完毕        #获取线程同步锁        queueLock.acquire()        if not workQueue.empty():  #判断工作队列是否处理完毕            data = m_queue.get()            queueLock.release()   #释放锁            print("%s processing  %s" % (threadname, data))        else:            queueLock.release()   #释放线程同步锁        time.sleep(1)#创建线程列表threadList =["thread-1", "thread-2", "thread-3"]#需要处理的数据nameList =["One", "Two", "Three", "Four", "Five", ]#创建线程同步锁queueLock =threading.Lock()#确认出列顺序,先进先出workQueue =queue.Queue()#按照先进后出的方式出列#workQueue =queue.lifoQueue()#确认出列顺序,按照优先级顺序出列#workQueue = queue.PriorityQueue()#创建线程池,稍后会将创建的线程加入线程池中threads =[]#创建线程IDthreadID=1#批量创建新线程for tname in threadList:    thread =myThread(threadID, tname, workQueue)  #创建线程,传入线程ID,线程名称,出列顺序    thread.start()                                #线程启动    threads.append(thread)                        #将线程放入线程池    threadID +=1                                  #定义下一个线程的ID值#获取线程锁queueLock.acquire()for  work in nameList:    workQueue.put(work)queueLock.release()    #释放线程锁#等待队列消息处理完毕while not  workQueue.empty():    pass#通知线程退出exitFlag =1#等待线程池线程工作完毕for t  in threads:    t.join()print(nameList)print("退出主线程.......")

 

总结

以上是内存溢出为你收集整理的Python 线程优先级出列顺序,先进先出,先进后出 代码实现全部内容,希望文章能够帮你解决Python 线程优先级,出列顺序,先进先出,先进后出 代码实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1185324.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存