• <bdo id='I6cYo'></bdo><ul id='I6cYo'></ul>
      <tfoot id='I6cYo'></tfoot>

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

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

        Python如何用信号杀死队列中阻塞的线程?

        Python how to kill threads blocked on queue with signals?(Python如何用信号杀死队列中阻塞的线程?)
        • <bdo id='lZije'></bdo><ul id='lZije'></ul>
          <i id='lZije'><tr id='lZije'><dt id='lZije'><q id='lZije'><span id='lZije'><b id='lZije'><form id='lZije'><ins id='lZije'></ins><ul id='lZije'></ul><sub id='lZije'></sub></form><legend id='lZije'></legend><bdo id='lZije'><pre id='lZije'><center id='lZije'></center></pre></bdo></b><th id='lZije'></th></span></q></dt></tr></i><div id='lZije'><tfoot id='lZije'></tfoot><dl id='lZije'><fieldset id='lZije'></fieldset></dl></div>
          <legend id='lZije'><style id='lZije'><dir id='lZije'><q id='lZije'></q></dir></style></legend>
            <tbody id='lZije'></tbody>

              <tfoot id='lZije'></tfoot>

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

                  本文介绍了Python如何用信号杀死队列中阻塞的线程?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我在一个队列上启动了一堆线程,我想在发送 SIGINT (Ctrl+C) 时终止它们.处理这个问题的最佳方法是什么?

                  I start a bunch of threads working on a queue and I want to kill them when sending the SIGINT (Ctrl+C). What is the best way to handle this?

                  targets = Queue.Queue()
                  threads_num = 10
                  threads = []
                  
                  for i in threads_num:
                      t = MyThread()
                      t.setDaemon(True)
                      threads.append(t)
                      t.start()
                  
                  targets.join()
                  

                  推荐答案

                  不是Ctrl+C SIGINT吗?

                  无论如何,您可以为适当的信号安装一个处理程序,并在处理程序中:

                  Anyway, you can install a handler for the appropriate signal, and in the handler:

                  • 设置一个全局标志,指示工人退出,并确保他们定期检查它
                  • 或将 10 个关闭令牌放入队列中,并让工作人员在弹出此魔术令牌时退出
                  • 或设置一个指示主线程推送这些令牌的标志,确保主线程检查该标志

                  等等.这主要取决于您要中断的应用程序的结构.

                  etc. Mostly it depends on the structure of the application you're interrupting.

                  这篇关于Python如何用信号杀死队列中阻塞的线程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

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

                  相关文档推荐

                  groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)
                  Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)
                  Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)
                  Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)
                  Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)
                  Grouping pandas DataFrame by 10 minute intervals(按10分钟间隔对 pandas 数据帧进行分组)
                  <i id='urXUE'><tr id='urXUE'><dt id='urXUE'><q id='urXUE'><span id='urXUE'><b id='urXUE'><form id='urXUE'><ins id='urXUE'></ins><ul id='urXUE'></ul><sub id='urXUE'></sub></form><legend id='urXUE'></legend><bdo id='urXUE'><pre id='urXUE'><center id='urXUE'></center></pre></bdo></b><th id='urXUE'></th></span></q></dt></tr></i><div id='urXUE'><tfoot id='urXUE'></tfoot><dl id='urXUE'><fieldset id='urXUE'></fieldset></dl></div>

                    <bdo id='urXUE'></bdo><ul id='urXUE'></ul>
                        <tbody id='urXUE'></tbody>
                      <tfoot id='urXUE'></tfoot>

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

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