不退出"/>
java main 如何不退出
下面介绍两种种方法,使main函数等待不退出
一、等待输入
1.new BufferedReader(new InputStreamReader(System.in)).readLine();
2.System.in.read();
二、使用线程同步锁
1.object.wait();
区别:“等待输入”的方式在用户输入回车、esc时会退出,“同步锁”方式则会无限期等待。
package org.mavens.blls;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* Hello world!
*
*/
public class App //extends com.googlemon.util.concurrent.AbstractIdleService
{
static Object lock = new Object();
public static void main( String[] args )
{
try {
//等待输入,读取回车前的所有字符
System.out.println( "0.等待输入,读取回车前的所有字符!" );
String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
System.out.println( "0.输入内容:"+str);
//等待输入,读取一个字符
System.out.println( "1.等待输入,读取一个字符!" );
int n = System.in.read();
System.out.println( "1.输入内容:"+(char)n );
//无限期等待
while(true){
synchronized(lock){
System.out.println( "2.无限期等待中..." );
lock.wait(); //等待,直到其它线程调用 lock.notify()
}
}
} catch (IOException | InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println( "已退出!" );
}
}
更多推荐
java main 如何不退出
发布评论