java - 在 Java 中运行执行不同工作的多个线程的正确方法是什么?

标签 java multithreading

我正在尝试用 Java 构建一个与网络相关的程序。我以前有使用 C 的经验。在 C 中,当你运行线程时,你定义了你希望它作为线程运行的方法。

但是,在 Java 中,似乎线程总是使用 run() 方法运行,并且每个类中可以有 1 个具有该名称的方法。

我希望至少有 2 个线程,一个线程用于计算,一个线程用于与其他应用程序通信。 (即使这可以用 1 个线程完成,我只是想知道运行 2 个执行完全不同工作的线程的正确方法是什么)

下面只是我如何实现线程的示例代码。如果由以下代码生成的线程进行通信,那么创建另一个进行计算的线程的好方法是什么?

public class Server implements Runnable{

    static Thread myThread;


    public void run() {
        // TODO Auto-generated method stub  
    }

    public static void main(String[] args) {
        myThread = new Thread(new Server());
    }


}

最佳答案

不要在实现ThreadRunnable 的类中放置main 方法。您可以使用当前的Server 实现来实现您想要的,但我没有看到这样做的充分理由。分离出关注点,然后 KISS:

  • 一个无聊、简单的类,带有一个public static void main(String[] args)方法
  • 一个Server实现Runnable类(一种线程)
  • 一个Calculations实现Runnable类(另一种类型的线程)

具有main 方法的类将启动ServerCalculations 线程。

关于java - 在 Java 中运行执行不同工作的多个线程的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6878574/

相关文章:

c# - 在方法签名中使用异步时,任务取消异常不会冒泡

java - 如何在 Android 中以编程方式检测死锁?

c# - 我可以使用 Json.net 在一次操作中将嵌套属性序列化到我的类吗?

java - 找不到符号变量 gso,Firebase Google 身份验证

java - 在 Spring Boot 服务中的自定义约束 validator 之前,Json 消息解析失败

java - 在子类中隐藏方法

java - 如何使用 spring 创建和配置内部构建器类

c++ - OpenMP 中的信号

c++ - 双CPU内存分配性能

java - 如何将表格定位在中央屏幕中?