java线程问题
java问题 悬赏分:0 - 离问题结束还有 14 天 22 小时 public class ThreadPrint{ static Thread makeThread(final String id,boolean doemon) { Thread t=new Thread(id){ public void run(){ System.out.println(id); } }; t.setDaemon(daemon); t.start(); return t; } public static void main(String args[]) Thread a=makeThread("A",false); Thread b=makeThread("B",true); System.out.println("END,\n"); } 选择正确的答案: a.总是打印字符A b.总打印字符B c.从不在END之后打印A d.从不在END之后打印B e.程序可能依次打印B END和A, 请问这题为什么是选择a ,e呢,我有点不怎么理解麻烦大家解释下
当所有的非daemon线程退出后,整个进程也就退出了。 打印A的线程是非daemon的,所以,A是肯定会被打印出来的,a是对的。 B不一定有机会被打印,那要看它是否在主线程和打印A的线程退出之前能获得调度运行的机会。所以b不对。 c和d也不一定,实际的线程调度次序和运行情况是很难预测的,一切皆有可能。 e当然是对的,因为它说“可能”,当调度器依次调度打印B的线程、主线程和打印A的线程上台运行时,自然就是这种结果。引用 当所有的非daemon线程退出后,整个进程也就退出了。 打印A的线程是非daemon的,所以,A是肯定会被打印出来的,a是对的。 B不一定有机会被打印,那要看它是否在主线程和打印A的线程退出之前能获得
相关问答:
通过java程序,先编译c程序,如出现错误,提示C程序中的错误,编译成功就运行,显示C的运行结果,最好把C的运行时间和内存等都显示出来 各位大哥大姐帮帮忙,小弟感激不尽! 用java的进程类试试 我给你转 ......
不知道是什么原因,我该如何处理,请大虾们指教了,小弟在此谢过。。。。 错误信息如下: The program being debugged was signaled while in a function called from GDB. GDB has restored the context t ......
我的开发的平台是Myeclipes6.0 + tomcat5.x + mysql 我所有的编码方式都是用的UTF-8 我只用了Strtus框架 在一个form中如下用的是post的提交方式: <form class="form" action=&quo ......
jsp学习前要了解那些知识?学了java了。不知道还要学习些什么知识才可以很好的学习jsp HTML、JavaScript 直接学就可以了,遇到不会就现学就行。 Html css servlet 去了解浏览器与web服务器的简单交 ......
1.public class cc { public double sum(){ double m=1; double n=2; double sum=0; for(int i=0;i <20;i++ ){ sum=sum+m/n; ......