A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朱玉玺 中级黑马   /  2013-2-19 22:32  /  1688 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 朱玉玺 于 2013-2-26 17:54 编辑

主线程能设为守护线程吗?如果不可以,能不能解释下原因;如果可以,怎么才能让主线程成为守护线程而不报错 java.lang.IllegalThreadStateException
怎么把一个线程设置为另一个线程的线程的守护线程?在主线程中启动一个线程并把它设为守护线程,那这个线程是主线程的守护线程;对于一个不是主线程的线程,如何设置另一个线程为其守护线程?

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9

查看全部评分

4 个回复

倒序浏览
ykglove 发表于 2013-2-19 23:13
我的理解是不可以的,因为main方法作为程序的入口是一个独立的线程来调用的,如果要使一个线程成为守护线程 ...

跟我想的差不多。有没有办法在main方法启动前,就调用将启动的那个主线程的setDaemon方法,利用反射能拿到main方法,并调用,调用之前能不能设置后台下
回复 使用道具 举报
设置守护线程需要在线程开启之前设置,主线程是程序的入口,所以应该是没法设置。将一个线程设置为另一个线程的守护线程,毕老师好像没提这个吧,只是说了一个线程或者是守护线程或者是非守护线程吧,不知道我理解的对不对。
回复 使用道具 举报
zuiaikou 发表于 2013-2-19 23:26
设置守护线程需要在线程开启之前设置,主线程是程序的入口,所以应该是没法设置。将一个线程设置为另一个线 ...

是啊,这块是我拓展一下,比如在Runnable子类的run方法中定义一个线程A,A设为守护并启动,那么A守护的应该是运行该子类对象的那个线程,而非主函数了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马