-
Concurrent(未完成)
-
创建一个线程
- extend Thread
- implements Runnable
工具类创建线程 (未完成)
-
synchronied 修饰方法和修饰代码块(在阿里Java手册中提到能锁代码块就不要所方法尽量提高性能)
- 修饰方法时:this 引用的当前实例持有锁
sychronized void method(){...}
- 修饰代码块: 指定对象
sychronized(object){...}
-
sleep、wait、join、yield
- wait 一定要有锁,当线程wait时,释放锁进入等待队列,用 notify 和 notifyAll 唤醒。wait 和 notify/notifyAll 一定要同步,否则会出现 IllegalMonitorStateException异常。
- sleep 是线程进入睡眠状态,持有锁,并不是释放锁。
- join 是等待上一个线程结束,相当于收拾好自己的箱子再去干其他事。
- yield 是放弃对已经持有锁的代码块/方法,重新竞争,再次持有锁的不一定是上一个持有锁的线程。
-
volatile
volatile其实并不能保证变量的原子性,他其实就是在修改一个变量之后,并不把修改后的写入缓存区,而是直接呈现出来的及时性。
-
几种设计模式(未完成)