解决方案 »

  1.   

    当某个线程中运行的代码创建了一个新的thread对象,该新线程的初始优先级被设定为创建线程的优先级。
      

  2.   

    那么系统是如何决定优先级的呢?或者是什么规律?
    创建一个Thread对象在没有setPriority的情况下,优先级默认为多少?
      

  3.   

    系统决定的优先级就是你自己定的,默认线程优先级是5,Java共有1到10,10种优先级。但是优先级高的并不一定会先执行,只是更有可能罢了。此外Java的优先级并不是真实的优先级,其映射到每种系统的情况都不一样,并不是一一对应的关系,比如说运行在windows的jvm好像有6种优先级,所以java程序中指定的级别1和级别2在windows上实际上是一样的,就对应windows的级别1,而3和4对应着windows的级别2。具体值不一定对,但基本上就这个道理。这种东西不用去深究,通常只有用虚引用作缓存时会开辟一个最低级别的资源回收线程,大部分场合默认级别就行了。
      

  4.   

    CPU是随机分配的、但是重点在于哪个优先级高、若优先级一样、就系统随机分配、若不一样、就看优先级以及线程的执行等因素进行执行、