- 原子性是基础,持久性是目的,隔离性是手段,一致性是约束。
- 数据库的4个隔离级别:
READ UNCOMMITED 读未提交,有脏读、不可重复读、幻读发生;
READ COMMITED 读已提交,避免脏读发生,有不可重复读、幻读发生;
REPEATABLE READ 可重复读,避免脏读、不可重复读,有幻读;
SERIALIZABLE 串行化,可避免脏读、不可重复读、幻读的发生,但性能影响较大;
a、不可重复读:在做修改操作时,同一个事务下,第一次读取的数据与第二次读取的数据不一样
b、幻读:发生在新增或者删除(重点是数据条数的变化),同样的条件下,第一次和第二次读取的数据条数不一样
- synchronized 给方法、代码块加锁,jvm自动释放:
修饰成员方法,默认锁对象是当前对象
修饰静态方法时,默认锁对象是当前类class对象
修饰代码块时,可以自己设置锁对象
2. lock只能给代码块加锁,自己手动加锁和释放
1.springcloud基本认识:
什么是springcloud?解决了什么问题?
2. 保证消息不丢失
![7156802f79508a7e4371103a0932f4c8.png](https://i-blog.csdnimg.cn/blog_migrate/23f1f2d48e2f77b7342c74b3cd4fe01d.jpeg)
3.Redis消息队列提供的延迟队列
![6189af831952c298a46a4520c4e8e08d.png](https://i-blog.csdnimg.cn/blog_migrate/e0dc99dcf62ce3e83dbd5ecbcd78b780.jpeg)
JUC
1.Volatile(轻量级的同步机制):可见性、不保证原子性、禁止指令重排
JMM(Java内存模型)
- 可见性:线程B可以获取线程A所修改的数据值
![8226f7c546ea7419d0a8ce955b1237c6.png](https://i-blog.csdnimg.cn/blog_migrate/b0d2df1ec795448c88f33c6215361761.jpeg)
2. 不保证原子性:不可分割,完整性,某个线程做某个具体业务时,中间不允许被加塞或者被分割。需要整体完整要么成功,要么同时失败。
![11b14e7dbaf3d35aa161a029b071593b.png](https://i-blog.csdnimg.cn/blog_migrate/87412398be89e613862a63bf7e1ab839.jpeg)
如何解决原子性?
加sync
直接使用juc下atomic类
3. Volatile禁止指令重排
![32ac210faf7caae7be6fc2a91b87ff71.png](https://i-blog.csdnimg.cn/blog_migrate/c7041d652431df65d348d98b7a151d43.jpeg)
![1a1eddc5154940424fc8b96ee343a615.png](https://i-blog.csdnimg.cn/blog_migrate/bcf1d138472278a24d4a1c3e09a00c0c.jpeg)
![e1f240561b930a9ca4f2b625d9d4ae5a.png](https://i-blog.csdnimg.cn/blog_migrate/8e5a26f7571376d0d7ae523ab0b69c5f.jpeg)
4.线程安全性获得保证
![7573bf83ca79fb3a1aa33f9fbc6d8dfc.png](https://i-blog.csdnimg.cn/blog_migrate/6e10166798ee3808e54401f8dfc8867c.jpeg)
5.并发环境下,以前的单例模式不是一个对象的情况:
![ae345dd51d663958cd8d9a5a8fb56745.png](https://i-blog.csdnimg.cn/blog_migrate/03657e6d6ccbbbd294fd14a8294ec229.jpeg)
使用synchronized可以解决
![f4e1dacee4ac59996f1cb9b80f5805cd.png](https://i-blog.csdnimg.cn/blog_migrate/cacfd1ebd71894409c44ea530b867afc.jpeg)
使用DCL模式(Double Check Lock 双端检索机制)
![a390869396a802261415d60a55defc2c.png](https://i-blog.csdnimg.cn/blog_migrate/3afcda46cfd0be88a4dd6336395a9ba3.jpeg)
![398aaa9def279c60917e7eddd873cd1f.png](https://i-blog.csdnimg.cn/blog_migrate/824f22a1a0fe7359f2aa2f647bf39ae8.jpeg)
堆:管存储
栈:先进后出,管运行,