线程
线程状态
一、阻塞状态:
-  Blocked 
-  waiting 
-  time_waiting 
线程关键字
一、sleep()方法
-  方法类型 静态方法 
-  状态变更 Thread.sleep()方法会阻塞当前调用该方法的线程,状态为:time_waiting,线程睡眠到期后自动苏醒,返回到可运行状态(就绪状态)。不保证苏醒后立即执行。
-  实际执行时间 可以指定休眠时间,但是实际休眠时间会大于该休眠时间。 
-  时间片 会出让时间片,允许各种优先级的线程得以执行,强制上下文切换。 
-  锁 不会释放锁标志。 
二、yeild()方法
-  方法类型: 静态方法 
-  状态变更: 仍然保持runnable状态,不会出让锁。线程提出,让出cpu时间片的请求,让相同优先级的别的线程可以获得运行的机会,但最终cpu选择哪个线程,还要看情况,有可能仍然执行相同的线程。 例如,一个线程循环10次算结束,可以在执行到第五次的时候,提出出让时间片,给别的线程执行的机会。 
-  时间片: 出让时间片 
-  释放“锁标志” 
三、join()方法
-  方法类型: 普通方法 
-  状态变更: 将指定的线程加入到当前线程中,当前线程执行wait()方法实现等待,处于waiting状态。一直到指定的线程执行完毕或者被打断。 
四、wait()方法
-  方法类型 普通方法,属于Object对象 
-  状态变更 当线程A调用wait()方法后,会变成waiting,time_waiting状态。放弃对象锁,进入对象等待池中,等待池中的对象不会去竞争同步锁。 A线程被B线程通过notify()唤醒后,进入锁标志等待池中,A会变成blocked状态,之后参与锁的竞争,竞争成功之后变为runnable状态。B线程不会立即将线程控制权交出去。 
-  锁标志 释放。当前线程暂停执行,放入对象等待池中。调用nodify方法之后,进入锁标志等待池中。 
-  时间片 释放CPU执行时间