中断java程序代码 java程序终止( 三 )


很幸运 Java平台为这种情形提供了一项解决方案 即调用阻塞该线程的套接字的close()方法 在这种情形下 如果线程被I/O操作阻塞 该线程将接收到一个SocketException异常 这与使用interrupt()方法引起一个InterruptedException异常被抛出非常相似
唯一要说明的是 必须存在socket的引用(reference) 只有这样close()方法才能被调用 这意味着socket对象必须被共享 Listing E描述了这一情形 运行逻辑和以前的示例是相同的
Listing Eimport*;import java io *;class Exampleextends Thread {volatile boolean stop = false;volatile ServerSocket socket;public static void main( String args[] ) throws Exception {Examplethread = new Example ();System out println(Starting thread);thread start();Thread sleep();System out println(Asking thread to stop);thread stop = true;thread socket close();Thread sleep();System out println(Stopping application);//System exit();}public void run() {try {socket = new ServerSocket( );} 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平台上已经提供的内嵌操作更为简单 lishixinzhi/Article/program/Java/gj/201311/27481
java怎么强行终止程序在java程序中,可以使用java.lang.System的exit方法来终止程序的执行,
12345678
public static void main(String[] args) {System.out.println("开始进入程序...");//do somethingSystem.out.println("程序准备退出了!");System.exit(0);//下面这句话将不会打印出来System.out.println("程序已经退出了!");}
但是使用exit方法的本质是终止了JVM的运行,如果同时运行了另外一个程序,使用exit方法同样也会使该程序也终止,要避免此种情况可以使用interrupt()来中断退出一个独立运行的过程 。对于多线程程序,必须要关闭各个非守护线程 。
1234567891011121314151617181920212223
public static void main(String[] args) {System.out.println("开始进入程序...");//do somethingnew Thread(){public void run() {while (true) {System.out.println("我是另外的线程...");try {Thread.sleep(2000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}.start();//获取man线程Thread main = Thread.currentThread();System.out.println(main.getName());main.interrupt();System.out.println("main线程已经退出了,但是不影响其他线程运行!");}
只有在程序非正常退出时,才使用exit方法退出程序 。
java停止运行怎么解决在java程序中中断java程序代码,可以使用java.lang.System的exit方法来终止程序的执行中断java程序代码,publicstaticvoidmain(String[]args){System.out.println("开始进入程序");//dosomethingSystem.out.println("程序准备退出中断java程序代码了中断java程序代码!");System.exit(0);//下面这句话将
【中断java程序代码 java程序终止】关于中断java程序代码和java程序终止的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读