三大特性
1原子性
线程任务不可再分
原子类(Atomic):
2可见性
线程之间的操作是互相不可见的
volatile 关键字是用来保证数据的可见性
3有序性
程序运行顺序不能改变
线程安全性的解决方案-锁
锁的使用过程
1.每个对象只有一把锁
2.每个线程枪锁,谁先抢到就是锁的持有者。
3.持有锁的线程访问有synchronized标记的·方法/代码块
4.离开synchronized,线程释放锁
Ticket类
3同步锁
三大特性
1原子性
线程任务不可再分
原子类(Atomic):
2可见性
线程之间的操作是互相不可见的
volatile 关键字是用来保证数据的可见性
3有序性
程序运行顺序不能改变
线程安全性的解决方案-锁
锁的使用过程
1.每个对象只有一把锁
2.每个线程枪锁,谁先抢到就是锁的持有者。
3.持有锁的线程访问有synchronized标记的·方法/代码块
4.离开synchronized,线程释放锁
Ticket类
3同步锁