如果在main方法中你要做的就是在main方法中启动一个线程是多余的吗?

时间:2015-02-17 07:29:35

标签: java multithreading server

例如,如果我这样做:

public static void main(String[] args){

 Thread myThread = new Thread(new MyServerRunnable());
 myThread.start();

}

我最好这样做:

public static void main(String[] args){

 MyServerClass server = new MyServerClass();
 server.start();

}

start()包含while循环而不是处理所有内容。 有关系吗?使用第一种方法,感觉就像我无缘无故地启动一个线程,因为主线程实际上只是启动另一个线程,我不妨使用主线程。

2 个答案:

答案 0 :(得分:2)

如果你这样说,答案是肯定的。但是,将服务器实现为Runnable可能是有益的,因为稍后您可能会决定使用ThreadPool或其他更高级的技术,Runnable为此提供了更大的灵活性。

另外,除非你在main中调用Thread#join,否​​则主线程将在启动服务器后完成,所以你实际上不会浪费那么多。

答案 1 :(得分:0)

如果您拥有线程,那么使用main方法创建线程并不重要。线程确实共享文本段和复制变量。只有当主方法中的某些变量只能用于其中一个踏板时,才会获得冗余。