python设置线程优先级,线程优先级排序

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: