抢占式线程调度
每个线程的执行时间有操作系统分配,线程的切换不由线程本身决定(Java中,Thread.yield()可以让出执行时间,但无法获取执行时间)线程执行时间系统可控,也不会有一个线程导致进程阻塞...状态转换
新建(New)创建后尚未启动的线程
运行(Runnable):Runnable包括操作系统中的Running和Ready....如没有设置timeout的Object.wait()方法和Thread.join()方法,以及LockSupport.park()方法
限时等待(Timed Waiting):该状态下的线程不会被分配CPU...阻塞状态是因为某种原因放弃CPU使用权,暂时停止执行,直到线程进入就绪状态,才有机会转到运行状态....,若该同步锁被其它线程占用,则JVM会把该线程放入锁池.
3.其它阻塞(限时等待):运行的线程执行了join()或者sleep()方法,或者发起了I/O请求,JVM会把该线程置为阻塞状态,当sleep(