当前位置: 首页>>代码示例>>Python>>正文


Python Queue.put方法代码示例

本文整理汇总了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)
开发者ID:matbur95,项目名称:pascal,代码行数:30,代码来源:main.py

示例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[:]))
开发者ID:TheKevJames,项目名称:school,代码行数:29,代码来源:q1.py

示例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()
开发者ID:bodii,项目名称:test-code,代码行数:35,代码来源:10.py

示例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()
开发者ID:gokhansolak,项目名称:yap-6.3,代码行数:33,代码来源:blocking.py

示例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
开发者ID:kamilchm,项目名称:pex,代码行数:32,代码来源:crawler.py

示例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,))
开发者ID:libopen,项目名称:mysear,代码行数:36,代码来源:expCpsxw183.py

示例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
开发者ID:f2nd,项目名称:yandex-tank,代码行数:32,代码来源:expvar.py

示例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()
开发者ID:hoytnix,项目名称:spidey,代码行数:32,代码来源:ips.py

示例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()
开发者ID:pombredanne,项目名称:yappi,代码行数:30,代码来源:test_functionality.py

示例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')
开发者ID:ankudinov,项目名称:PyConf,代码行数:35,代码来源:PyConf.py

示例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'
开发者ID:tjt7a,项目名称:trie-python-graphviz,代码行数:35,代码来源:trie_oop.py

示例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)
开发者ID:terry2012,项目名称:avatar-python,代码行数:33,代码来源:gdbserver_target.py

示例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)
开发者ID:jaehwang2,项目名称:algo,代码行数:30,代码来源:bfs_Shortest_Reach.py

示例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)
开发者ID:siikamiika,项目名称:mecab-translate,代码行数:62,代码来源:server.py

示例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
开发者ID:YogaPan,项目名称:linux-basic,代码行数:28,代码来源:mission.py


注:本文中的queue.Queue.put方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。