Java 如果';这就是你的全部';你打算用主要的方法做什么?
例如,如果我正在这样做:Java 如果';这就是你的全部';你打算用主要的方法做什么?,java,multithreading,server,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(); } 其
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循环,而不是处理所有事情。
这有关系吗?对于第一种方法,我感觉我无缘无故地启动了一个线程,因为主线程实际上只是启动了另一个线程,所以我最好使用主线程 如果你这样说,答案是肯定的。不过,将服务器实现为可运行可能会有好处,因为稍后您可能会决定使用ThreadPool或其他更高级的技术,而可运行为此提供了更大的灵活性
此外,除非您在主线程中调用线程#join,否则主线程将在启动服务器后完成,因此实际上您并没有浪费那么多时间。如果您需要线程,那么使用main方法创建线程并不重要。线程共享文本段并复制变量。只有当主方法中的一些变量仅可用于其中一个踏板时,才能获得冗余。我认为第二个更具可读性。另一方面,这取决于它对其他代码的影响。您所说的一切都是正确的,但您不需要创建线程来调用Runnable对象的run()方法。