1、当其他非守护线程完成时,守护线程将自行结束。
2、任何线程都可以成为守护线程。通过调用Thread.setdaemon()来声明一个线程是一个守护线程。线程的共性是只有在非守护线程还在工作时才有意义。
实例
/** *Createstenthreadstosearchforthemaximumvalueofalargematrix. *Eachthreadsearchesoneportionofthematrix. */ publicclassTenThreads{ privatestaticclassWorkerThreadextendsThread{ intmax=Integer.MIN_VALUE; int[]ourArray; publicWorkerThread(int[]ourArray){ this.ourArray=ourArray; } //Findthemaximumvalueinourparticularpieceofthearray publicvoidrun(){ for(inti=0;i<ourArray.length;i++) max=Math.max(max,ourArray[i]); } publicintgetMax(){ returnmax; } } publicstaticvoidmain(String[]args){ WorkerThread[]threads=newWorkerThread[10]; int[][]bigMatrix=getBigHairyMatrix(); intmax=Integer.MIN_VALUE; //Giveeachthreadasliceofthematrixtoworkwith for(inti=0;i<10;i++){ threads[i]=newWorkerThread(bigMatrix[i]); threads[i].start(); } //Waitforeachthreadtofinish try{ for(inti=0;i<10;i++){ threads[i].join(); max=Math.max(max,threads[i].getMax()); } } catch(InterruptedExceptione){ //fallthrough } System.out.println("Maximumvaluewas"+max); } }
以上就是java守护线程的理解,希望对大家有所帮助。更多Java学习指路:Java基础
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容