多线程的三种启动方式 1继承Thread 2重写Runnable 3Executors.newCachedThrad线程池创建 线程状态 可重入锁synchrenized 异常跟锁——线程报错后另一个锁乱入 偏向锁->自旋锁->重量级锁 总结