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...??
多线程是一个强大的工具,然而它正呈现出一系列难题。其中之一是如何中断一个正在运行的线程。如果恰当地实现,使用上述技术中断线程将比使用Java平台上已经提供的内嵌操作更为简单。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-69021-6.html
以乱放屁罪判处3年有期徒刑