请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

子线程抛出异常,main线程是否会停止运行

若在main中创建一个子线程threadA,若threadA中抛出异常停止运行,为什么main线程不会停止运行?在上一个章节中,老师不是说过子线程挂了,进程也会挂吗?这该怎么理解?

正在回答 回答被采纳积分+3

1回答

翔仔 2021-02-05 23:42:19

同学好,子线程抛出异常不会影响主线程的执行的呢,子线程相当于是一个副本,执行成功与否不需要main线程关心的,除非main线程主动去关心。上一个章节里面是GC,里面没讲到子线程挂了主进程就挂了吧,具体是哪个地方讲到了呀?

0 回复 有任何疑惑可以回复我~
  • 上面同学说的应该是上一小节8-1的10:52,您说了“线程只是进程的不同执行路径,某一个线程挂,它所属的进程也会挂掉。”
    我认为这个是不是分情况,如果程序本身是单线程,那么线程崩溃就意味着进程崩溃;如果是多线程,子线程崩溃不一定会造成进程崩溃。但是线程之间是共享地址空间的,没有自己单独的内存地址空间,如果指针数据的错误导致任何同地址空间内其他线程的崩溃,也会导致进程的崩溃。
    不知理解的是否正确,还请老师解答。
    回复 有任何疑惑可以回复我~ 2022-07-08 17:47:43
  • 同学好,直接看看这篇文章 https://juejin.cn/post/7094946159303049224 ,如果涉及到多线程共享的情况,如果变量是线程不安全的,则有可能造成连锁崩溃
    回复 有任何疑惑可以回复我~ 2022-07-08 23:58:08
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信