黑马程序员技术交流社区

标题: 【成都校区】多线程的一些需要注意的点 [打印本页]

作者: hs.zhu    时间: 2019-4-24 22:49
标题: 【成都校区】多线程的一些需要注意的点
### 多线程

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

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2