private class StopServer extends Thread
{
public void start()
{
this.setDaemon(true);
super.start() ;
}
@Override
public void run() {
ServerSocket serverSocket = null ;
Socket socket = null ;
try {
serverSocket = new ServerSocket(8001) ;
while (true) {
socket = serverSocket.accept();
String line = new BufferedReader(new InputStreamReader(socket.getInputStream())).readLine();
if (line.equals("shutdown"))
{
socket.getOutputStream().write("ok, start stop the server....\r\n".getBytes());
socket.getOutputStream().flush() ;
System.out.println("start a new thread to stop the server....") ;
//新创建的子线程
new Thread() {
public void start() {
setDaemon(true);
super.run();
}
public void run() {
System.out.println("start stopServer Thread...");
EchoServer2.this.stop();
}
}.start();
break ;
} else
{
if (!socket.isClosed())
socket.close();
}
}
}
catch (IOException e)
{
System.err.println("daemon thread exception: " + e);
e.printStackTrace();
}
finally {
System.out.println("stop stopServer...");
if(serverSocket != null && !serverSocket.isClosed())
try
{
serverSocket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
if(socket != null && !socket.isClosed())
try {
socket.close();
}catch (IOException e)
{
e.printStackTrace() ;
}
}
}
}
Ini adalah utas latar belakang pelayan yang saya tulis semalam, utas ini digunakan terutamanya untuk memantau port 8001. Jika arahan penutupan diterima, pelayan akan ditutup Selepas mematikan pelayan, saya memulakan utas baharu , iaitu ini Apabila sub-benang latar belakang sebenarnya berjalan, pelayan tidak ditutup, jadi saya menilai bahawa sub-benang akan mati bersama-sama dengan keseluruhan utas latar belakang Nampaknya sistem pengendalian perlu membaca buku sekali lagi maaf mengganggu semua
Ini adalah utas latar belakang pelayan yang saya tulis semalam, utas ini digunakan terutamanya untuk memantau port 8001. Jika arahan penutupan diterima, pelayan akan ditutup Selepas mematikan pelayan, saya memulakan utas baharu , iaitu ini Apabila sub-benang latar belakang sebenarnya berjalan, pelayan tidak ditutup, jadi saya menilai bahawa sub-benang akan mati bersama-sama dengan keseluruhan utas latar belakang Nampaknya sistem pengendalian perlu membaca buku sekali lagi maaf mengganggu semua
Sebab ia Daemon