java main 如何不退出_为什么java main主线程退出了子线程还能运行;golang main结束所有协程都被结束了...
最近看golang main函數(shù)結(jié)束,所有協(xié)程都被結(jié)束了
結(jié)論是這樣:A不是main程的情況下,在A程里開啟B程,A程執(zhí)行完,A程return之后,B程不受影響,不會掛掉。所有子協(xié)程與main程同級的,與main程伴生
java主線程結(jié)束和子線程結(jié)束之間的關(guān)系
Main線程是個(gè)非守護(hù)線程,不能設(shè)置成守護(hù)線程。
這是因?yàn)?#xff0c;main線程是由java虛擬機(jī)在啟動(dòng)的時(shí)候創(chuàng)建的。main方法開始執(zhí)行的時(shí)
候,主線程已經(jīng)創(chuàng)建好并在運(yùn)行了。對于運(yùn)行中的線程,調(diào)用Thread.setDaemon()會
拋出異常Exception in thread "main" java.lang.IllegalThreadStateException。
Main線程結(jié)束,其他線程一樣可以正常運(yùn)行
主線程,只是個(gè)普通的非守護(hù)線程,用來啟動(dòng)應(yīng)用程序,不能設(shè)置成守護(hù)線程;除此之外,它跟其他非守護(hù)線程沒有什么不同。主線程執(zhí)行結(jié)束,其他線程一樣可以正常執(zhí)行
Main線程結(jié)束,其他線程也可以立刻結(jié)束,當(dāng)且僅當(dāng)這些子線程都是守護(hù)線程。
java虛擬機(jī)(相當(dāng)于進(jìn)程)退出的時(shí)機(jī)是:虛擬機(jī)中所有存活的線程都是守護(hù)線程。只要還有存活的非守護(hù)線程虛擬機(jī)就不會退出,而是等待非守護(hù)線程執(zhí)行完畢;反之,如果虛擬機(jī)中的線程都是守護(hù)線程,那么不管這些線程的死活java虛擬機(jī)都會退出
有疑問加站長微信聯(lián)系(非本文作者)
總結(jié)
以上是生活随笔為你收集整理的java main 如何不退出_为什么java main主线程退出了子线程还能运行;golang main结束所有协程都被结束了...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云电脑版下载官方(阿里云电脑 官网)
- 下一篇: java 定义变量时 赋值与不赋值_探究