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

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

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

      1. python3.x 多处理循环没有“if __name__ == '__main_

        时间:2023-08-06
        <tfoot id='CL0tR'></tfoot>
          <tbody id='CL0tR'></tbody>

      2. <small id='CL0tR'></small><noframes id='CL0tR'>

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

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

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

                  本文介绍了python3.x 多处理循环没有“if __name__ == '__main__':"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我有这个文件(它没有做任何有用的工作,它只是为了学习):

                  I have this file (it doesn't make any useful work, it's only for learning):

                  import multiprocessing,sys
                  def parent(numproc=2):
                      print ('at start')
                      childs=[]
                      print ('bfore Pipe')
                      (parentEnd,childEnd)=multiprocessing.Pipe()
                      i=0
                      print ('printing i:',i)
                      child=multiprocessing.Process(target=child_proc, args=(childEnd,i))
                      print ('created child')
                      child.start()
                      print ('started child')
                      print ('joining child')
                      child.join()
                      print ('joined child')
                      print ('exeted from for i in childs')
                      mins=[1,2]
                      print ('task ended. result: ',min(mins))
                  def child_proc(pipe,name):
                      pass
                  if __name__ == '__main__':
                      parent()
                  

                  以这种形式完美运行:

                  at start
                  bfore Pipe
                  printing i: 0
                  created child
                  started child
                  joining child
                  joined child
                  exeted from for i in childs
                  task ended. result:  1
                  

                  但如果我放在文件末尾而不是

                  but if I put in end of file instead of

                  if __name__ == '__main__':
                      parent()
                  

                  只有

                  parent()
                  

                  它属于循环...

                  at start
                  bfore Pipe
                  printing i: 0
                  created child
                  started child
                  joining child
                  at start
                  bfore Pipe
                  printing i: 0
                  created child
                  started child
                  joining child
                  at start
                  bfore Pipe
                  printing i: 0
                  created child
                  started child
                  joining child
                  Traceback (most recent call last):
                  

                  为什么?!这个 if 子句有什么不同?

                  Why?! What different makes this if clause?

                  推荐答案

                  这是 MS Windows 上 multiprocessing 的问题:主模块由子任务导入,因此任何代码不受保护if __name__ ... 子句再次运行,导致无限循环.

                  This is an issue with multiprocessing on MS Windows: the main module is imported by the child tasks, so any code not protected by the if __name__ . . . clause gets run again, resulting in an infinite loop.

                  这篇关于python3.x 多处理循环没有“if __name__ == '__main__':"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:在 pyqt 小部件中实现 pyqtgraph 多处理 下一篇:Python多处理池,加入;不等待继续?

                  相关文章

                  最新文章

                  1. <tfoot id='zYIQd'></tfoot>
                      <bdo id='zYIQd'></bdo><ul id='zYIQd'></ul>

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

                    1. <small id='zYIQd'></small><noframes id='zYIQd'>

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