python设置线程优先级,线程优先级排序
大蟒的长队模块中提供了同步的、线程安全的队列类,包括先进先出(先入先出)队列队列,后进先出(后入先出)队列LifoQueue,和优先级队列优先级队列。
1、说明
这些队列都实现了锁原语,能够在多线程中直接使用,可以使用队列来实现线程间的同步。
模块中的常用方法如下:
Queue.qsize()返回队列的大小
Queue.empty()如果队列为空,返回没错,反之错误的
Queue.full()如果队列满了,返回没错,反之错误的
队列。满与最大允许的上传大小大小对应
排队。获取([阻塞[,超时]])获取队列,超时等待时间
Queue.get_nowait()相当Queue.get(False)
队列.上传(项目)写入队列,超时等待时间
Queue.put_nowait(item)相当Queue.put(item,False)
Queue.task_done()在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号
Queue.join()实际上意味着等到队列为空,再执行别的操作
2、实例
#!/usr/bin/python3
导入队列
导入线程
进口时间
exitFlag=0
classmyThread(线程。螺纹):
def__init__(self,threadID,name,q):
threading.Thread.__init__(self)
self.threadID=threadID
self.name=name
self.q=q
defrun(self):
打印(开启线程:自我名)
流程数据(自己的名字,自己的问题)
打印(退出线程:自我名)
defprocess_data(threadName,q):
whilenotexitFlag:
queueLock.acquire()
ifnotworkQueue.empty():
data=q.get()
queueLock.release()
打印( %s处理% s“%(线程名,数据))
else:
queueLock.release()
时间。睡眠(1)
threadList=[Thread-1 , Thread-2 , Thread-3]
名称列表=[一,二,三,四,五]
队列锁=线程。锁定()
工作队列=队列。队列(10)
线程=[]
threadID=1
#创建新线程
fortNameinthreadList:
thread=myThread(threadID,tName,workQueue)
thread.start()
线程.追加(线程)
threadID=1
#填充队列
queueLock.acquire()
转发域名列表:
workQueue.put(word)
queueLock.release()
#等待队列清空
whilenotworkQueue.empty():
及格
#通知线程是时候退出
exitFlag=1
#等待所有线程完成
fortinthreads:
t.join()
打印(退出主线程)以上就是大蟒线程优先级队列的介绍,希望能对大家有所帮助。更多大蟒学习指路:python基础教程
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。