多线程与高并发(一)
线程概念、启动方式、常用方法
线程创建的方法
- 实现Runnable接口
- 继承Thread类
- 创建线程池
线程启动的方法
-
Thread类的start方法
这里需要注意:如果是实现接口创建的线程 线程启动时需要使用new Thread(xxx).start()
线程常用方法
- join
- notify notifyAll
- sleep wait
synchronized()
- 锁的是对象而不是代码
- 不能用String常量 Integer Long
线程同步
- synchronized可以方法方法上
- 实例方法上 锁定的是this对象
- 静态方法上 锁定的是class对象
- 锁定方法 非锁定方法同步执行
- 锁升级
- 偏向锁 自旋锁 重量级锁
- 线程数少、执行时间短 使用自旋锁
- 线程数多、执行时间长 使用重量级锁