线程同步
一、概述
1.卖票案例为什么出现数据安全问题
- 有多线程
- 有数据共享
- 有多条语句操作共享数据
2.如何解决和实现
基本思想:让程序没有安全问题的环境
实现:把多条语句操作共享的代码给锁起来,让任意时刻只能有一个线程可以执行
3.同步代码块
格式:
synchronized(任意对象){
多条语句操作共享数据的代码;
}
synchronized(任意对象):就相当于给代码加锁了,任意对象可以看成一把锁。
好处:解决了多线程的数据安全问题
弊端:当线程很多时,因为每个线程都会去判断同步上的锁,这会降低程序的运行效率