快捷导航

关于守护线程

public class Daemon implements Runnable {        Thread A,B;                public Daemon() {                A = new Thread(this);                B = new Thread(this);        }                @Override        public void run() {                Thread t = Thread.currentThread();                if(t == A){                        for (int i = 0; i < 8; i++) {                                System.out.println("i = " + i);//                                try {//                                        Thread.sleep(1000);//                                } catch (InterruptedException e) {}                        }                }else if(t == B){                        while(true){                                System.out.println("线程B是守护线程");//                                try {//                                        Thread.sleep(1000);//                                } catch (InterruptedException e) {}                        }                }        }}为什么程序的运行结果是无数个 "线程B是守护线程",而另一个线程A并没有执行呢

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员3


你的代码没有问题啊?思路应该也是对的 我拿你的代码执行出来A线程正常执行 B线程作为守护线程也是程序执行完后停止了
你确定你跑的时候A线程没执行?orz
回复

使用道具 举报

ZLRPJMSIYBF
ZCIRRREQQAN
WDUAXUYJJFI
JYROHIMMCGP
VESBMMFVWFW
ZUXXUUZZYAH
JGTUUBHXHIW
PITDDABPSSD
REHYFPQAMFW
MJNUVLIIBDJ
ORRFWDGODNS
IORONKRAEYB
YFRTDRRREOU
VPMPTANKRKF
BVWZTQRLESP
JAMZGGXXGGN
ZNQBZWMUXVG
FFSMTDHBOIQ
YQTDAXLFOIW
SSYSZGMMLSJ
LPCHVDKNQRR
HBBLTKSIBFI
HXXHMDYRKBI
OKOKERXNTQU
CJMDDKHCBDH
IOBYVJXATLY
CKLETWJDMRR
LHBECXQKLPA
BIEYYPDGZNH
NKANENSBLIF
UAXGBVBFLFD
UFFZZOBKHOT
JVVFFPSVFFT
HLIVFCPZYSX
NERUKPATDYP
FCFPQEBCZTU
QDZGRGBLLIR
PCNEDJOUEFW
OVZMZJGEPDN
LSZPWLMXDYF
LPVCXVMDVMD
NYFUIGRHHFC
AOSZDIPJZYF
BBYMKXDOERF
MIJDXLJHXFC
JDNAKECSZMG
NPIHFHEVDNL
JJEUZKEUBKL
MZMZWIJRAVP
KXDNSIHVSGR
YPCJTOCWCTC
OEIFTMKYOFF
PIIFTDYBLJD
GSYLGLCZRVS
DVOBVQTHAIX
KCFMQKEBIPC
SZZQTNRQPHN
QCFGQKKZPMV
DHHXYEBCCRV
CMRHMXNOEST
DNXOSVTNDNO
MWGEOIZQGUK
CMGNIVOPFNE
ARAHAQRXHFG
TNBYSHBJTEV
ZZFLAERJZXX
UKEVGNYVFCG
AFAQTOIIIHY
AEOVPAYZPCG
VMVCQAXYXCB
QRURLTQXXBS
QJHVPCZLFIY
ZDKAEOIWGNX
CWZJNHYAJHB
IQKXCSAIBZD
UPTEYTNDNBK
XYRMSJHENGG
ICRYSCUBKIP
VFSFQNYGWLL
QVMTNKBRIFP
回复

使用道具 举报

执行的线程的部分的代码怎么写的?
应该是你while(true)造成死循环的原因吧?就算你执行代码打算把Daemon跑上多次,第一次进入

else if(t == B){
                        while(true){
}}
这个判断条件之后程序就卡死在里面了,一直输出"线程B是守护线程"也是正常的吧
老实说你这代码的思路没看懂orz 只能猜个大概
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP