<tfoot id='B0DT1'></tfoot>
  • <legend id='B0DT1'><style id='B0DT1'><dir id='B0DT1'><q id='B0DT1'></q></dir></style></legend>
      <bdo id='B0DT1'></bdo><ul id='B0DT1'></ul>

    <small id='B0DT1'></small><noframes id='B0DT1'>

    <i id='B0DT1'><tr id='B0DT1'><dt id='B0DT1'><q id='B0DT1'><span id='B0DT1'><b id='B0DT1'><form id='B0DT1'><ins id='B0DT1'></ins><ul id='B0DT1'></ul><sub id='B0DT1'></sub></form><legend id='B0DT1'></legend><bdo id='B0DT1'><pre id='B0DT1'><center id='B0DT1'></center></pre></bdo></b><th id='B0DT1'></th></span></q></dt></tr></i><div id='B0DT1'><tfoot id='B0DT1'></tfoot><dl id='B0DT1'><fieldset id='B0DT1'></fieldset></dl></div>

        Python2.7中实现Barrier

        时间:2023-09-28
        • <i id='M2ZIA'><tr id='M2ZIA'><dt id='M2ZIA'><q id='M2ZIA'><span id='M2ZIA'><b id='M2ZIA'><form id='M2ZIA'><ins id='M2ZIA'></ins><ul id='M2ZIA'></ul><sub id='M2ZIA'></sub></form><legend id='M2ZIA'></legend><bdo id='M2ZIA'><pre id='M2ZIA'><center id='M2ZIA'></center></pre></bdo></b><th id='M2ZIA'></th></span></q></dt></tr></i><div id='M2ZIA'><tfoot id='M2ZIA'></tfoot><dl id='M2ZIA'><fieldset id='M2ZIA'></fieldset></dl></div>
            <tbody id='M2ZIA'></tbody>

          • <bdo id='M2ZIA'></bdo><ul id='M2ZIA'></ul>

              <legend id='M2ZIA'><style id='M2ZIA'><dir id='M2ZIA'><q id='M2ZIA'></q></dir></style></legend>

                  <small id='M2ZIA'></small><noframes id='M2ZIA'>

                  <tfoot id='M2ZIA'></tfoot>
                  本文介绍了Python2.7中实现Barrier的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  I have this code implemented in Python3 using Barriers. I want to get the same functionality in Python2.7 but i don't know which synchronization primitive to use as Barriers are not there in Python2.7

                  import threading
                  import time
                  from threading import Thread,Barrier
                  
                  b = Barrier(2, timeout=50)
                  
                  def func1():
                      time.sleep(3)
                      b.wait()
                      print('Working from func1')
                      return 
                  
                  def func2():
                      time.sleep(5)
                      b.wait()
                      print('Working from func2')
                      return
                  
                  if __name__ == '__main__':
                      Thread(target = func1).start()
                      Thread(target = func2).start()
                  

                  解决方案

                  You can simulate the barrier with semaphores. Take a look at: Implementing an N process barrier using semaphores

                  The problem is that it has no timeout parameter, maybe using Conditions ...

                  import time
                  from threading import Thread,Semaphore
                  
                  class Barrier:
                      def __init__(self, n):
                          self.n = n
                          self.count = 0
                          self.mutex = Semaphore(1)
                          self.barrier = Semaphore(0)
                  
                      def wait(self):
                          self.mutex.acquire()
                          self.count = self.count + 1
                          self.mutex.release()
                          if self.count == self.n: self.barrier.release()
                          self.barrier.acquire()
                          self.barrier.release()
                  
                  b = Barrier(2)
                  
                  def func1():
                      time.sleep(3)
                      #
                      b.wait()
                      #
                      print('Working from func1')
                      return 
                  
                  def func2():
                      time.sleep(5)
                      #
                      b.wait()
                      #
                      print('Working from func2')
                      return    
                  
                  if __name__ == '__main__':
                      Thread(target = func1).start()
                      Thread(target = func2).start()    
                  

                  这篇关于Python2.7中实现Barrier的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:用 Python(套接字)创建一个简单的聊天应用程序 下一篇:如何在 Pandas 数据框中展开列

                  相关文章

                      <small id='gnJXs'></small><noframes id='gnJXs'>

                    1. <legend id='gnJXs'><style id='gnJXs'><dir id='gnJXs'><q id='gnJXs'></q></dir></style></legend>

                      • <bdo id='gnJXs'></bdo><ul id='gnJXs'></ul>
                      <i id='gnJXs'><tr id='gnJXs'><dt id='gnJXs'><q id='gnJXs'><span id='gnJXs'><b id='gnJXs'><form id='gnJXs'><ins id='gnJXs'></ins><ul id='gnJXs'></ul><sub id='gnJXs'></sub></form><legend id='gnJXs'></legend><bdo id='gnJXs'><pre id='gnJXs'><center id='gnJXs'></center></pre></bdo></b><th id='gnJXs'></th></span></q></dt></tr></i><div id='gnJXs'><tfoot id='gnJXs'></tfoot><dl id='gnJXs'><fieldset id='gnJXs'></fieldset></dl></div>
                      <tfoot id='gnJXs'></tfoot>