gpt4 book ai didi

java - 从匿名内部 "runnable"类中调用方法。这是不好的做法吗?

转载 作者:行者123 更新时间:2023-11-30 10:39:47 27 4
gpt4 key购买 nike

首先,让我说,至少可以说,我不是世界上经验丰富的 Java 程序员。

当涉及到互联网访问等时间紧迫的操作时,我开始经常使用下面的代码。这样,我就可以在独占线程中运行任何方法。有时,我什至从第一个调用的方法中调用其他方法。我假设,它们都在同一个线程中运行。如果我错了,请纠正我。

pingItem.addActionListener(event -> //listener of a JButton
{
new Thread( new Runnable(){
@Override
public void run(){
/*
* some code...
*/
showOnlineState(); //=> private static void showOnlineState()
}
}).start();
});

这确实很好用,而且使用起来非常简单。但我有点担心线程是否会“卡住”或发生其他问题。由于它是一个匿名类,我不知道如何用“.isAlive”之类的东西检查它或如何停止它。

我应该避免这样编码吗?这是“不好的做法”吗?

最佳答案

我会说设计可以改进:

  1. 优先使用新并发包中的 Executor 等类,而不是 JDK 1.0 Thread。
  2. 如果传入 Runnable,可以轻松更改操作。使用内部类需要您编辑和重新部署代码以更改它。
  3. 当您关闭线程时,要意识到该线程处于操作系统的控制之下。你将无法阻止它。您可以设置超时。

关于java - 从匿名内部 "runnable"类中调用方法。这是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39187324/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com