本文整理汇总了Python中queue.Queue.put方法的典型用法代码示例。如果您正苦于以下问题:Python Queue.put方法的具体用法?Python Queue.put怎么用?Python Queue.put使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类queue.Queue
的用法示例。
在下文中一共展示了Queue.put方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: main
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
def main():
""" Function makes whole job.
"""
queue = Queue()
pages = (URL + str(i + 1) for i in range(44))
t0 = time()
with Pool(10) as p:
for links in p.imap_unordered(get_links, pages):
for link in links:
queue.put(link)
t1 = time()
with Pool(20) as p:
for entry in p.imap_unordered(get_entry, drain(queue)):
queue.put(entry)
t2 = time()
print()
print(t1 - t0)
print('entries:', queue.qsize())
print(t2 - t1)
with open('data.json', 'w') as f:
json.dump(queue2list(queue), f)
示例2: astar
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
def astar(maze, start, end):
cost = lambda distance, current: distance + ((end[0] - current[0]) ** 2 \
+ (end[1] - current[1]) ** 2) ** 0.5
visited = set()
will_visit = set()
queue = Queue()
queue.put((start, list()))
will_visit.add(start)
while not queue.empty():
current, path = queue.get()
path.append(current)
visited.add(current)
if current == end:
return path, len(path), len(visited)
options = moves(maze, current)
options.sort(key=partial(cost, len(path)))
for potential in options:
if potential in will_visit:
continue
will_visit.add(potential)
queue.put((potential, path[:]))
示例3: __init__
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
class Actor:
def __init__(self):
self._mailbox = Queue()
def send(self, msg):
self._mailbox.put(msg)
def recv(self):
msg = self._mailbox.get()
if msg is ActorExit:
raise ActorExit()
return msg
def start(self):
self._terminated = Event()
t = Thread(target=self._bootstrap)
t.daemon = True
t.start()
def _bootstrap(self):
try:
self.run()
except ActorExit:
pass
finally:
self._terminated.set()
def join(self):
self._terminated.wait()
def run(self):
while True:
msg = self.recv()
示例4: BlockingInProcessChannel
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
class BlockingInProcessChannel(InProcessChannel):
def __init__(self, *args, **kwds):
# type: (object, object) -> object
super(BlockingInProcessChannel, self).__init__(*args, **kwds)
self._in_queue = Queue()
def call_handlers(self, msg):
self._in_queue.put(msg)
def get_msg(self, block=True, timeout=None):
""" Gets a message if there is one that is ready. """
if timeout is None:
# Queue.get(timeout=None) has stupid uninteruptible
# behavior, so wait for a week instead
timeout = 604800
return self._in_queue.get(block, timeout)
def get_msgs(self):
""" Get all messages that are currently ready. """
msgs = []
while True:
try:
msgs.append(self.get_msg(block=False))
except Empty:
break
return msgs
def msg_ready(self):
""" Is there a message that has been received? """
return not self._in_queue.empty()
示例5: crawl
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
def crawl(self, urls, follow_links=False):
links, seen = set(), set()
queue = Queue()
converged = threading.Event()
def execute():
while not converged.is_set():
try:
url = queue.get(timeout=0.1)
except Empty:
continue
if url not in seen:
seen.add(url)
hrefs, rel_hrefs = self.execute(url)
links.update(hrefs)
if follow_links:
for href in rel_hrefs:
if href not in seen:
queue.put(href)
queue.task_done()
for url in urls:
queue.put(url)
for _ in range(self._threads):
worker = threading.Thread(target=execute)
worker.daemon = True
worker.start()
queue.join()
converged.set()
return links
示例6: main
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
def main():
ts = time.time()
# create a queue to communicate with the worker threads
queue=Queue()
# Create 2 wroker threads
for x in range(6):
worker = doExpbatWorker(queue)
# setting daemon to True will let then main thread exit even though the workers are blocking
worker.demon = True
worker.start()
#for i in range(9):
# queue.put(('~/'+str(i)+'.bat','dfdf'))
jb = []
batpath='g:/migration/exp_script/'
csvpath='g:/migration/mig_xw/'
jb.append((batpath+'cps_xw_studentcourse.bat', batpath+'cps_xw_studentcourse.bat '+' AcademicAdministration '+ csvpath+'cps_xw_studentcourse.csv 202.205.160.199 jwc wangbin'))
jb.append((batpath+'cps_xw_avgscore.bat', batpath+'cps_xw_avgscore.bat '+' AcademicAdministration '+ csvpath+'cps_xw_avgscore.csv 202.205.160.199 jwc wangbin'))
#jb.append((batpath+'exmm_composescore330.bat', batpath+'exmm_composescore330.bat '+' zhejiang '+ csvpath+'exmm_composescore330.csv 202.205.160.183 sa !!!WKSdatatest!!!'))
#jb.append((batpath+'cps_xw_avgscore.bat', batpath+'cps_xw_avgscore.bat '+' AcademicAdministration '+ csvpath+'cps_xw_avgscore.csv 202.205.160.199 jwc wangbin'))
#jb.append((batpath+'exmm_xkStandardplan330.bat', batpath+'exmm_xkStandardplan330.bat '+' zhejiang '+ csvpath+'exmm_xkstandsartplan330.csv 202.205.160.183 sa !!!WKSdatatest!!!'))
#jb.append((batpath+'exmm_xkStandard330.bat', batpath+'exmm_xkStandard330.bat '+' zhejiang '+ csvpath+'exmm_xkstandsart330.csv 202.205.160.183 sa !!!WKSdatatest!!!'))
excl=[]
for item in jb:
find = False
for i in excl:
if i in item[0]:
find = True
break
if find == False:
#if 'exemptapply' in item[0]:
queue.put(item)
queue.join()
print('took %s minuters '%((time.time()-ts)/60,))
示例7: Metric
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
class Metric(object):
"""
This class stores generic time-series data in a queue.
Values are stored as (timestamp, value) tuples
"""
def __init__(self):
self.metric = Queue()
def push(self, value, timestamp=None):
if timestamp is None:
timestamp = int(time.time())
elif not isinstance(timestamp, int):
raise ValueError(
"Timestamp should be an integer, but it is '%s'" %
type(timestamp))
self.metric.put((timestamp, value))
def next(self):
try:
return self.metric.get_nowait()
except Empty:
raise StopIteration
def get(self):
# TODO: decide what we should return here
return None
def __iter__(self):
return self
示例8: __init__
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
class Work:
def __init__(self, threads = 100, offset = 0, timeout = 15.0):
self.lines = Lines(f=_DOMAINS_FILE)
self.num_lines = len(self.lines.d)
self.concurrent = threads
self.q = Queue(self.concurrent * 2)
for self.i in range(self.concurrent):
self.t = Thread(target=self.doWork)
self.t.daemon = True
self.t.start()
try:
for self.i in range(offset, self.num_lines):
self.q.put(self.i)
self.q.join()
except KeyboardInterrupt:
sys.exit(1)
def doWork(self):
while True:
n = int(self.q.get())
_domain = self.lines.find_line(n=n)
c = Check(url = _domain)
ip = c.ip
if ip:
print(ip, end = ' ')
print(_domain)
save(ip=ip, domain=_domain)
self.q.task_done()
示例9: test_producer_consumer_with_queues
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
def test_producer_consumer_with_queues(self):
# we currently just stress yappi, no functionality test is done here.
yappi.start()
import time
if utils.is_py3x():
from queue import Queue
else:
from Queue import Queue
from threading import Thread
WORKER_THREAD_COUNT = 50
WORK_ITEM_COUNT = 2000
def worker():
while True:
item = q.get()
# do the work with item
q.task_done()
q = Queue()
for i in range(WORKER_THREAD_COUNT):
t = Thread(target=worker)
t.daemon = True
t.start()
for item in range(WORK_ITEM_COUNT):
q.put(item)
q.join()# block until all tasks are done
#yappi.get_func_stats().sort("callcount").print_all()
yappi.stop()
示例10: main
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
def main(filename):
username = input('User: ') # get username, will be echoed on the terminal
password = getpass.getpass() # get password, will not be echoed on the terminal, some IDE restrictions can apply
print(time_stamp(), ': script started')
task_queue = Queue()
new_task = Task(task_queue)
new_task.read(filename)
while not task_queue.empty():
host_queue = Queue()
log_queue = Queue()
task_block = task_queue.get()
for host_ip in task_block['hosts']:
host_queue.put(host_ip)
config_list = task_block['tasks']
while not host_queue.empty():
for x in range(50):
worker = ExecuteTask(host_queue, config_list, log_queue, username, password, mode=task_block['mode'])
worker.daemon = True
worker.start()
host_queue.join()
while not log_queue.empty():
st = log_queue.get()
print(st)
print(time_stamp(), ': script stopped')
示例11: diagram
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
def diagram(self):
from graphviz import Digraph
from queue import Queue
diagram=Digraph(comment='The Trie')
i=0
diagram.attr('node', shape='circle')
diagram.node(str(i), self.root.getValue())
q=Queue()
q.put((self.root, i))
while not q.empty():
node, parent_index=q.get()
for child in node.getChildren():
i+=1
if child.getEnding():
diagram.attr('node', shape='doublecircle')
diagram.node(str(i), child.getValue())
diagram.attr('node', shape='circle')
else:
diagram.node(str(i), child.getValue())
diagram.edge(str(parent_index), str(i))
q.put((child, i))
o=open('trie_dot.gv', 'w')
o.write(diagram.source)
o.close()
diagram.render('trie_dot.gv', view=True)
'trie_dot.gv.pdf'
示例12: GdbBreakpoint
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
class GdbBreakpoint(Breakpoint):
def __init__(self, system, bkpt_num):
super().__init__()
self._system = system
self._bkpt_num = bkpt_num
self._queue = Queue()
system.register_event_listener(self._event_receiver)
def wait(self, timeout = None):
if self._handler:
raise Exception("Breakpoint cannot have a handler and be waited on")
if timeout == 0:
return self._queue.get(False)
else:
return self._queue.get(True, timeout)
def delete(self):
self._system.unregister_event_listener(self._event_receiver)
self._system.get_target()._gdb_interface.delete_breakpoint(self._bkpt_num)
def _event_receiver(self, evt):
if EVENT_BREAKPOINT in evt["tags"] and \
evt["source"] == "target" and \
evt["properties"]["bkpt_number"] == self._bkpt_num:
if self._handler:
self._handler(self._system, self)
else:
self._queue.put(evt)
elif EVENT_SIGABRT in evt["tags"]:
self._queue.put(evt)
示例13: solve
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
def solve():
(node, edge) = read(int)
graph = [[] for _ in range(node)]
cost = [-1 for _ in range(node)]
for i in range(edge):
(fro, to) = read(int)
fro, to = fro-1, to-1
if to not in graph[fro]:
graph[fro].append(to)
graph[to].append(fro)
start = read(int)[0] - 1
cost[start] = 0
q = Queue()
q.put(start)
while not q.empty():
select = q.get()
for i in graph[select]:
if cost[i] == -1:
cost[i] = cost[select] + 6
q.put(i)
for i in range(node):
if start == i:
continue
end = ' ' if i < node -1 else '\n'
print(cost[i], end=end)
示例14: TTS
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
class TTS(object):
def __init__(self):
self.clients = []
self.voice_choices = []
self.queue = Queue()
if 'win32com' not in globals():
return
Thread(target=self._background).start()
def _background(self):
pythoncom.CoInitialize()
self.tts = win32com.client.Dispatch("SAPI.SpVoice")
self.voices = self.tts.GetVoices()
self.voices = [self.voices.Item(i) for i in range(self.voices.Count)]
self.voice_choices = [dict(desc=v.GetDescription(), id=i) for i, v in enumerate(self.voices)]
self.tts.Rate = -5
self.event_sink = win32com.client.WithEvents(self.tts, TTSEventSink)
self.event_sink.setTTS(self)
while True:
self._speak(self.queue.get(True))
def _speak(self, text):
self._speaking = True
self.tts.Skip("Sentence", INT32_MAX)
self.tts.Speak(text, SVSFlagsAsync)
self._pump()
def speak(self, text):
while True:
try:
self.queue.get(False)
except Empty:
break
self.queue.put(text)
def get_voice_choices(self):
return self.voice_choices
def set_voice(self, voice_id):
self.tts.Voice = self.voices[voice_id]
def handle_event(self, event, *args):
msg = dict(type=event)
if event == 'end':
self._speaking = False
elif event == 'word':
msg.update(dict(char_pos=args[0], length=args[1]))
msg = json.dumps(msg)
for c in self.clients:
c.write_message(msg)
def _pump(self):
skipped = False
while self._speaking:
if not skipped and not self.queue.empty():
self.tts.Skip("Sentence", INT32_MAX)
skipped = True
pythoncom.PumpWaitingMessages()
time.sleep(0.05)
示例15: __init__
# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import put [as 别名]
class Mission:
def __init__(self, max_thread):
self.queue = Queue()
self.max_thread = max_thread
def __enter__(self):
for x in range(self.max_thread):
thread = Thread(target=self._threader)
thread.daemon = True
thread.start()
return self
def __exit__(self, exception_type, exception_value, traceback):
self.queue.join()
def send_task(self, func, *args):
self.queue.put((func, args))
def _threader(self):
while True:
try:
func, args = self.queue.get()
func(*args)
self.queue.task_done()
except queue.Empty:
pass