日期:2014-05-20 浏览次数:20732 次
package test; import java.util.concurrent.*; import static net.mindview.util.Print.*; public class SimpleDaemons implements Runnable { public void run() { try { while (true) { TimeUnit.MILLISECONDS.sleep(100); print(Thread.currentThread() + "" + this); } } catch(InterruptedException e) { print("sleep() interrupted"); } } public static void main(String[] args) throws Exception { for (int i = 0; i < 10; ++i) { Thread daemon = new Thread(new SimpleDaemons()); daemon.setDaemon(true); daemon.start(); } print("All daemons started"); TimeUnit.MILLISECONDS.sleep(175);//这儿这个175改成190结果中线程数量就会为20个,但是没到190时 } //线程结果数量就是10个, 真搞不懂, 按我理解的程序运行方式只要数字不到200结果 //就都是10个的, 我理解是这样的, 在main这个非后台线程睡眠过程中, 后台线程 //先睡100ms, 然后运行print 显示结果, 如果在下一个100ms内main线程还没结束就继续print显示 //结果, 一直循环, 直到main线程结束. }