本文整理汇总了Python中queue.Queue.start方法的典型用法代码示例。如果您正苦于以下问题:Python Queue.start方法的具体用法?Python Queue.start怎么用?Python Queue.start使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类queue.Queue
的用法示例。
在下文中一共展示了Queue.start方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: SvcDoRun
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import start [as 别名]
def SvcDoRun(self):
# start the queue in a separate thread
queue = Queue()
queue.start()
cherrypy.tree.mount(QueueIndex(), '/')
# in practice, you will want to specify a value for
# server.log_file below or in your config file. If you
# use a config file, be sure to use an absolute path to
# it, as you can't be assured what path your service
# will run in.
cherrypy.config.update({
'global':{
'autoreload.on': False,
'server.log_to_screen': False,
}
})
# set init_only=True so that start() does not block
cherrypy.server.start(init_only=True)
# now, block until our event is set...
win32event.WaitForSingleObject(self.stop_event, win32event.INFINITE)
示例2: Queue
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import start [as 别名]
# or disclosed in any way without written permission.
#
#
#
import cherrypy
from queue import Queue
from queue_index import QueueIndex
# create a web service
if __name__ == '__main__':
# start the queue in a separate thread
queue = Queue()
queue.start()
# start a cherrypy web service
cherrypy.root = QueueIndex()
cherrypy.config.update( {
'global': { 'server.socketPort': 8082, 'server.environment': 'production' }
} )
cherrypy.server.start()
示例3: QA_Thread
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import start [as 别名]
class QA_Thread(threading.Thread):
'''
'这是一个随意新建线程的生产者消费者模型'
其实有个队列, 队列中保存的是 QA_Task 对象 , callback 很重要,指定任务的时候可以绑定 函数执行
QA_Engine 继承这个类。
'''
def __init__(self, queue=None, name=None):
threading.Thread.__init__(self)
self.queue = Queue() if queue is None else queue
self.thread_stop = False
self.__flag = threading.Event() # 用于暂停线程的标识
self.__flag.set() # 设置为True
self.__running = threading.Event() # 用于停止线程的标识
self.__running.set() # 将running设置为True
self.name = QA_util_random_with_topic(topic='QA_Thread', lens=3) if name is None else name
self.idle = False
def __repr__(self):
return '<QA_Thread{} id={}>'.format(self.name, id(self))
def run(self):
while self.__running.isSet():
self.__flag.wait()
while not self.thread_stop:
'这是一个阻塞的队列,避免出现消息的遗漏'
try:
if self.queue.empty() is False:
_task = self.queue.get() # 接收消息
assert isinstance(_task, QA_Task)
if _task.worker != None:
_task.do()
self.queue.task_done() # 完成一个任务
else:
pass
else:
self.idle = True
# Mac book下风扇狂转,如果sleep cpu 占用率回下降
# time.sleep(0.01)
except Exception as e:
raise e
def pause(self):
self.__flag.clear()
def resume(self):
self.__flag.set() # 设置为True, 让线程停止阻塞
def stop(self):
# self.__flag.set() # 将线程从暂停状态恢复, 如何已经暂停的话
self.__running.clear()
self.thread_stop = True # 设置为False
def __start(self):
self.queue.start()
def put(self, task):
self.queue.put(task)
def put_nowait(self, task):
self.queue.put_nowait(task)
def get(self, task):
return self.get(task)
def get_nowait(self, task):
return self.get_nowait(task)
def qsize(self):
return self.queue.qsize()