
并发情况下三种线程/并发安全
发布日期:2021-05-06 23:22:02
浏览次数:7
分类:技术文章
本文共 722 字,大约阅读时间需要 2 分钟。
1. 主存内小的共享变量线程安全
[JMM,工作内存,主存屏障,volatile+cas]
2.磁盘内数据库读写并发安全
[对version的cas] 因为读,写是通过执行sql语句实现的,而不是直接像指针访问主存一样,因而没有情况1的可见性问题,直接对version进行CAS即可 [由于数据库事务中又包含多个sql语句,所以在前面提到的针对单个sql语句竞争的基础上,更上一层要考虑事务隔离性问题,如脏读,不可重复读,幻读,,,前两者一般涉及update,delete,直接锁行即可,幻读需要锁表,事务级别对应对表行,表上锁的处理过程] read commited解决了脏读也就解决了基本问题即对错问题,像是不可重复读,幻读则看业务场景需不需要,比如涉及钱转账的用户容忍度低,但像是热榜这种用户暂时读的不是最新数据也能接受,还有知乎用户点赞数。且一般情况下网站内的大部分数据[回答,文章,想法---哪怕是问题编辑这种公共的由于业务原因一般不会有高并发场景]只有其拥有者账号才能改,其它人并发能改的也就是点赞数,收藏数这种[即使是评论也只能该评论拥有者可以删除或发布],所以在实际业务场景中,对数据库某些内容的更新或修改高并发主要是数字。因为创造某东西或删除某东西一般是私有的,只有拥有者账户有权限。 [搜索关键字累积次数,阅读量,点赞数,转发数] 看来主要业务场景是搜索结果(但结果本身是读多写少的,用户主要是浏览)建议看下面的文章
3.分布式缓存
[除了对缓存的并发读写安全外还要考虑将缓存内容更新到数据库中-因为缓存大小有限,需要结合LRU算法更新回数据库;而情况1是单个变量,而情况二默认磁盘大小无限]建议看下面文章[都是转载的]
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月23日 02时57分31秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
js基础复习8-call方法简单使用以及javascript继承
2019-03-04