【问题标题】:Multi-client server use: which method better多客户端服务器使用:哪种方法更好
【发布时间】:2020-11-01 12:46:16
【问题描述】:

创建多客户端服务器使用扩展 Thread 或在 Java 中实现 Runnable

使用

public class Receiver implements Runnable {

public class Receiver extends Thread {

哪个更适合我的代码?

【问题讨论】:

  • 如果您不再对他们大喊大叫,人们会更喜欢阅读您的问题。在互联网上使用所有大写字母正在大喊大叫。尤其是已经用过java标签为什么还要“IN JAVA”?

标签: java multithreading server client chat


【解决方案1】:

实现 Runnable 总是更好,如果您使用 Runnable,您可以使用线程或线程池执行它

请阅读 "implements Runnable" vs "extends Thread" in Java

更多详情

【讨论】:

    【解决方案2】:

    这里有一些链接可以帮助您找到答案

    https://www.geeksforgeeks.org/implement-runnable-vs-extend-thread-in-java/ "implements Runnable" vs "extends Thread" in Java

    在您的具体情况下,我认为(猜测)您的 Receiver不是线程(通过 OOP)但 应该在线程中工作 或 Perform Multi-threaded 这意味着它不应扩展 Thread(在 Receiver 之间没有 is-a 关系线程)

    【讨论】:

      【解决方案3】:

      执行者框架

      我假设您的意思是“多线程”,其中您编写了“多客户端服务器”。

      在现代 Java 中,我们很少手动管理线程。我们现在有了 Executors 框架来处理杂耍线程的细节。所以不需要扩展Thread

      要在后台线程上运行的任务应该写成RunnableCallable,然后提交给执行器服务。请参阅Executors 类以生成执行器服务。

      您会返回一个Future 对象,可以检查该对象是否已完成、已取消或仍待处理。

      这已在 Stack Overflow 上多次解决。搜索以了解更多信息。

      【讨论】:

        猜你喜欢
        • 2017-06-08
        • 2018-07-19
        • 1970-01-01
        • 2011-02-15
        • 1970-01-01
        • 2013-03-03
        • 2016-01-26
        • 2011-07-09
        • 2011-09-09
        相关资源
        最近更新 更多