有两个线程,一个线程A拥有最高的权限,另一个B是普通权限,那么两个线程将怎么运行啊,是A一直运行直到运行完才运行B,还是A运行完后B就不再运行了,还是A、B交差运行呢,或者其它什么结论么?

解决方案 »

  1.   

    “权限”只是主线程对线程执行优先级的“建议”,高优先级的线程“有可能”获得更多的cpu时间片,执行的频率较高。所以AB是交叉运行的,也就是“优先权不会导致死锁”。至于系统是怎样调度线程就是操作系统的知识了,不同的系统有不同的调度策略,优先级调度就是其中的一种。-->   如果想等待A执行完了再执行B,那就用join()方法。
    -->   也可以使用无界BlockingQueue的DelayQueue实现线程优先级队列(延迟时间作为优先级的参考)
    -->   还有很多很多方法