<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

        Implementing Barrier in Python2.7(Python2.7中实现Barrier)
        • <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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Adding config modes to Plotly.Py offline - modebar(将配置模式添加到 Plotly.Py 离线 - 模式栏)
                  Plotly: How to style a plotly figure so that it doesn#39;t display gaps for missing dates?(Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙?)
                  python save plotly plot to local file and insert into html(python将绘图保存到本地文件并插入到html中)
                  Plotly: What color cycle does plotly express follow?(情节:情节表达遵循什么颜色循环?)
                  How to save plotly express plot into a html or static image file?(如何将情节表达图保存到 html 或静态图像文件中?)
                  Plotly: How to make a line plot from a pandas dataframe with a long or wide format?(Plotly:如何使用长格式或宽格式的 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>
                            <tbody id='gnJXs'></tbody>
                          <tfoot id='gnJXs'></tfoot>