Java 虚拟机采用抢占式调度模型,是指优先让可运行池中优先级高的线程占用CPU,如果可运行池中线程式的优先级相同,那么就随
机选择一个线程,使其占用CPU.处于运行状态的线程式会一直运行,直到它不得不放弃CPU.
值得注意的是,线程的调度不是跨平台的,它不仅取决于Java虚拟机,还依赖于操作系统.在某些系统中,只要运行中的线程没有遇到
阻塞,就不会放弃CPU;在某些系统中,即使运行中的线程没有遇到阻塞,也会在运行一定时间后放弃CPU,给其他线程运行的机会.
如果希望明确地让一个线程给另一个线程运行的机会,可以采取以下方法之一:
1.调整各个线程的优先级.
2.让处于运行状态的线程调用Thread.sleep()方法.
3.让处于运行状态的线程调用Thread.yield()方法.
4.让处于运行状态的线程调用另一个线程的join()方法.