所以机顶盒是双核心.我以为我们只能创建2个合适的线程.
在每个keyreleased()中
我正在创建一个新线程
Runnable runnable = new Runnable() { int i = j; public void run() { while (true) { System.out.println("This thread is running always number is " + i); } } }; Thread th = new Thread(runnable); th.setPriority(Thread.MAX_PRIORITY); th.start(); j++; //... }
但即使在创建了20多个线程之后,盒子也没有任何问题.
是因为JVM意识到运行块是空的并且它优化了代码?或者while(true)的JVM实现是不同的?
注意:我也尝试过使用Thread.sleep(1000),但没有问题
即使在单核机器上也可以运行20个线程.会发生什么叫做时间切片.
http://en.wikipedia.org/wiki/Time_slice#Time_slice
这是处理器模拟多个处理器执行多个任务一次的方法.