我想知道以下每个线程实现之间的区别是什么,我应该在什么时候使用每个选项。
1- 实现 Runnable
public class ClientThread implements Runnable
{
new Thread(this).start();
public void run()
{...}
}
2- 扩展线程
class ServerThread extends Thread
{
this.start();
public void run()
{...}
}
3- 我真的不熟悉的工作线程和 SwingWorker
...
非常感谢
- 您好,我在下面添加了另一个问题,它是作为答案发布的 我不小心在网络浏览器中删除了我的 cookie,谢谢..
好的,谢谢你提供的所有信息..
但是,如果我想为 swing 游戏实现一个倒数计时器,我应该使用什么,它将在屏幕上与游戏并行运行,而不会阻塞游戏的流程,因为后台的一致计时器将显示在那里,并且可能会需要在事件派发线程上运行...
我可以使用 Runnable 实现还是必须使用 swing worker?
最佳答案
- 这是首选方式,因为它分离了提供线程应该运行的代码(
Runnable
实例的工作)和管理线程的工作(Thread
实例),并且还允许让Runnable
成为其他对象的子类 - 不太干净,但效果一样好
- “工作线程”是与主应用程序并行运行的线程的概念名称。
SwingWorker
是一个设计用于在 Swing 应用程序中实现 worker tread 的类。它为工作线程提供了一个 API,用于将其状态传达给 Swing 事件线程,以便它可以,例如更新进度条。
请注意,手动处理线程通常非常困难。如果出于性能原因需要多个线程,最好通过 Executors
使用线程池。类。
关于java - Java 中的多线程编程——方法上的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7197131/