如何中断一个正在运行的线程

服务器可能需要等待一个请求(request),又或者,一个网络应用程序可能要等待远端主机的响应。

import java.net.*;
import java.io.*;
class Example5 extends Thread {
volatile boolean stop = false;
volatile ServerSocket socket;
public static void main( String args[] ) throws Exception {
Example5 thread = new Example5();
System.out.println( “Starting thread…” );
thread.start();
Thread.sleep( 3000 );
System.out.println( “Asking thread to stop…” );
thread.stop = true;
thread.socket.close();
Thread.sleep( 3000 );
System.out.println( “Stopping application…” );
//System.exit( 0 );
}
public void run() {
try {
socket = new ServerSocket(7856);
} catch ( IOException e ) {
System.out.println( “Could not create the socket…” );
return;
}
while ( !stop ) {
System.out.println( “Waiting for connection…” );
try {
Socket sock = socket.accept();
} catch ( IOException e ) {
System.out.println( “accept() failed or interrupted…” );
}
}
System.out.println( “Thread exiting under request…” );
}
}


以下是运行Listing E中代码后的输出:

Starting thread…

Waiting for connection…

Asking thread to stop…

accept() failed or interrupted…

Thread exiting under request…

Stopping application…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值