A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

### 多线程

> 当多个线程在操作同一个共享变量时,就有可能发生安全问题。 ——Java并发编程实战
>
> (如果只是读取,不算是操作)

- `synchronized`同步代码块:并行变成了串行(其实就是多线程变成了单线程),同时多了判断的过程(拿锁,还锁,判断锁),效率降低了
- 同步方法没有同步代码块好,同步代码块更加灵活,可以控制锁的范围,只锁需要锁的部分
- 同步方法:
  - 静态方法:对象是`类名.class`
  - 非静态方法:对象是this
- Lock锁被称为显式锁,synchronized被称为隐式锁,Lock锁性能更优。synchronized是`JVM`层面上的
- `wait()`和`notify()`必须要用锁对象来进行调用
- sleep不会释放锁
- wait会释放锁,这样wait期间执行权就可以被其它线程抢走

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马