当前位置: 首页 > 面试题库 >

如何从内部关闭线程?

翁鸿远
2023-03-14
问题内容

对于连接到服务器的每个客户端,我都会生成一个新线程,如下所示:

# Create a new client
c = Client(self.server.accept(), globQueue[globQueueIndex], globQueueIndex, serverQueue )

# Start it
c.start()

# And thread it
self.threads.append(c)

现在,我知道可以使用以下代码关闭 所有 线程:

    # Loop through all the threads and close (join) them
    for c in self.threads:
        c.join()

但是,如何从关闭线程 该线程?


问题答案:

启动线程时,它开始执行您提供的功能(如果要扩展threading.Thread,该功能将为run())。要结束线程,只需从该函数返回即可。

根据这个,你也可以打电话thread.exit(),这将抛出一个异常,将安静地结束线程。



 类似资料:
  • 问题内容: 在按下(代码格式)后,有人知道如何在Eclipse中打开换行符吗,例如: 问题答案: 转到窗口->首选项-> Java->代码样式->格式化程序。创建新的格式化程序。单击编辑,然后选择选项卡“换行”,并将“换行”策略设置为“不换行”。

  • 问题内容: 我正在扩展ArrayList来创建一个自定义ArrayList,可以在迭代它的同时使用常规ArrayList方法进行修改。为此,我还要创建一个迭代器。 在我的hasNext()和next()方法期间,我需要确保列表没有被修改(可以在任何其他时间修改)。因此,我需要在我的shared()块中引用我的封闭类型。 问题答案: 。因此,在您的情况下,它将为。

  • 问题内容: 我有一个.csv文件,其中包含超过7000万行,其中每行将生成一个 Runnable ,然后由线程池执行。此Runnable将一条记录插入Mysql。 此外,我想记录csv文件的位置,以便 RandomAccessFile 定位。该位置被写入 File 。当线程池中的所有线程完成时,我想写入此记录。因此调用ThreadPoolExecutor.shutdown()。但是,当更多行出现时

  • 我有一个Jframe(美因茨), 它有一个按钮(showDialog), 当用户单击该按钮时, jdialog (Dialogz) 将显示, 那个jdialog有一个按钮 如何从该按钮关闭jdialog(在jdialog内部)? 我可以在创建对话框的实例后更改对话框的模式吗? 我需要阻止jdialog的所有者 我试着。。。 非常感谢你的任何帮助

  • 注意:绝对路径指向此“/data/user/0/com.package.name/pdffolder/sample.pdf”

  • 问题内容: 在Python 2.6中, 我希望它打印两次,然后打印一个元组。与3.1中的情况相同。这是怎么回事? 问题答案: 当您将字符串传递给或时,它将在考虑全局变量或局部变量之前将该字符串编译为代码对象。所以当你说: 它的意思是: 没有办法知道这是一个freevar,因此将其编译为全局引用: 因此,要使其发挥作用,您必须输入全局变量而不是本地变量。 是的,这有点狡猾。但是那是对的,我想…对于他