Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 线程启动后的命令不是';不执行_Java - Fatal编程技术网

Java 线程启动后的命令不是';不执行

Java 线程启动后的命令不是';不执行,java,Java,我在LinuxOS上用Java编写了一个小的客户机-服务器应用程序,服务器从客户机接收不同的命令,并通过启动不同的线程来处理这些命令。每个命令都有一个特定的线程 我的主程序启动一个线程,它响应不同的命令,由一个无限循环组成。还没有退出循环的出口。此线程打印到终端,主程序在终端上启动,但“.start()”之后的命令不会执行 ServerSend servSend = new ServerSend(arg); System.out.println("1"); servSend.start();

我在LinuxOS上用Java编写了一个小的客户机-服务器应用程序,服务器从客户机接收不同的命令,并通过启动不同的线程来处理这些命令。每个命令都有一个特定的线程

我的主程序启动一个线程,它响应不同的命令,由一个无限循环组成。还没有退出循环的出口。此线程打印到终端,主程序在终端上启动,但“.start()”之后的命令不会执行

ServerSend servSend = new ServerSend(arg);
System.out.println("1"); 
servSend.start();
System.out.println("2");`

因此,永远不会打印“2”,而线程中的某些“System.out.println()”可以工作。有人知道为什么吗?

如果您试图生成一个新线程,我假设
ServerSend
实现
java.lang.Runnable
或扩展
java.lang.thread
,在这种情况下,您应该覆盖
public void run()
方法,而不是
start()
方法

即:

然后用它来搭配

ServerSend s = new ServerSend(arg);
s.thread.start();
公共访问
线程
允许您执行以下操作:

s.thread.interrupt();

这是我首选的方法(使用
Runnable
),其他人更喜欢扩展
线程。这个答案概括了我的想法:

什么是
ServerSend
start()
是否返回?您是否有可能扩展
Thread
并覆盖
start()
?@TomaszNurkiewicz这是我没有想到的滥用Thread的另一种方式;)@彼得拉维:我也没有,直到我看到:-)他没有写,他写得太多了,开始而不是跑。
s.thread.interrupt();