gpt4 book ai didi

java - Java 中的多线程编程——方法上的差异?

转载 作者:行者123 更新时间:2023-11-29 06:44:38 25 4
gpt4 key购买 nike

我想知道以下每个线程实现之间的区别是什么,我应该在什么时候使用每个选项。

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?

最佳答案

  1. 这是首选方式,因为它分离了提供线程应该运行的代码(Runnable 实例的工作)和管理线程的工作(Thread 实例),并且还允许让 Runnable 成为其他对象的子类
  2. 不太干净,但效果一样好
  3. “工作线程”是与主应用程序并行运行的线程的概念名称。 SwingWorker 是一个设计用于在 Swing 应用程序中实现 worker tread 的类。它为工作线程提供了一个 API,用于将其状态传达给 Swing 事件线程,以便它可以,例如更新进度条。

请注意,手动处理线程通常非常困难。如果出于性能原因需要多个线程,最好通过 Executors 使用线程池。类。

关于java - Java 中的多线程编程——方法上的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7197131/

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