java 程序驻留不退出保持运行
前言不管是C、java、go 程序,要让程序一直不间断动行,就肯定需要保持线程不退出,才能可能持续运行。
今天说的是java,一般来说从main方法开始运行结束之后,线程也就退出,如何保证线程不退出?实际上只要证保有一个线程在持续运行,程序就不算退出。一般来说只需要保持main线程不退出,然后其他线程不间断的工作就OK。实际上在如果开启多个线程,就算主线程执行结束了,子线程没有结整,JVM一样不会退出。
保持运行上面说了,思路都量样的,就是阻塞一条线程,让JVM不要退出,一般是阻塞主线程main,让他阻塞不退出,直到需要退出的时候再限出。演示几种不退出的方式:
读取流: System.in.read();
等待锁:
wait()
CountDownLatch(1).await();
死循环: while(true)
睡眠: sleep()
这几种方式,不是阻塞,就是睡眠,大概思路都差不多,就是
读取流通过阻塞主线程,来验证一下,运行后就可以看到service的run方法执行完后,程序也不会退的。代码可以自行复制验证。这种方式可以用,一般线上服务都是通过kill -15来退出应用 ...