gpt4 book ai didi

java - 无法停止线程

转载 作者:行者123 更新时间:2023-12-01 06:31:39 25 4
gpt4 key购买 nike

这是我正在使用的代码。

public class timerApp {
Runnable timerRun = new runX();
Thread thread1 = new Thread(timerRun);
public static void main(String[] args) {
timerApp xyz = new timerApp();
xyz.createGUI();
}
public void createGUI() {
JButton button = new JButton("Start timer");
JButton button2 = new JButton("Stop timer");
JFrame frame = new JFrame();
JLabel label = new JLabel("under_construction");
frame.getContentPane().add(BorderLayout.NORTH,button);
frame.getContentPane().add(BorderLayout.SOUTH,button2);
frame.getContentPane().add(BorderLayout.CENTER,label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setVisible(true);
button.addActionListener(new b1L());
button2.addActionListener(new b2L());
}
public class b1L implements ActionListener {
public void actionPerformed(ActionEvent event) {
thread1.start();
}
}
public class b2L implements ActionListener {
public void actionPerformed(ActionEvent event) {
thread1.stop();
}
}
}

我收到错误注意:timerApp.java 使用或覆盖了已弃用的 API。注意:使用 Xlint 重新编译:deprecation 了解详细信息。在添加停止按钮的监听器类后我开始得到这个。

RELP!

最佳答案

stop() 确实已被弃用。它将使程序处于不一致的状态。更好的方法是:

  1. Thread.interrupt()
  2. 设置一个在线程中可见的 boolean 值,并让该线程定期检查该变量

参见here有关如何安全停止线程的更多详细信息。

关于java - 无法停止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3537173/

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