守护线程也叫精灵线程: 当程序只剩下守护线程的时候 ,程序就会退出。
守护线程的作用类似在后台静默执行,比如JVM的垃圾回收机制。
应用场景:实例化socket连接时需要判断连接成功与否,一般来说,如果连接成功就是片刻的事,如果不成功的话jvm会判断20s时间,才会抛出超时异常,对于体验来说实在是太差了,所以就需要自定义他运行时间,超过时间(比如2s)就抛出异常,终止程序。
主代码:
TimeoutThreadDemo.java
public class TimeoutThreadDemo extends Thread{
private long timeout;
private boolean isCanceled = false;
private TimeoutException timeoutExceptio