您的位置: 首页> 资讯 > 正文

聊聊并发编程两原则,你明白了吗?

2023-06-14 10:13:08 来源:今日头条

之前写过一篇文章, 并发编程的核心技术 – 多版本(Multi Versioning), 本文继续对并发编程做一次更全面的总结, 这样的总结并非具体的编程指导, 而概括性的理论, 是笔记性质的.


【资料图】

根据经验总结, 并发编程的指导思想可以总结为两个原则, 也即并发编程两原则:

Sharding/PartitioningLevelingSharding

Sharding 技术常见于分布式系统, 如果我举一个编程技巧里常用的技术, 估计你会比较熟悉 - 哈希锁. 例如 Java 语言里的 ConcurrentHashMap, 内部就是把整个容器分成独立的多个分段, 每个分段对应一把锁. 或者某些 KV 数据库, 预先分配若干个锁到数组中, 然后把每一个 key 根据 hash 算法对应不同的锁上面, 当需要对 key 加锁时, 加的是对应的那把锁, 两个 key 概率上可以同时加锁(并发).

分布式系统的核心之一就是 Sharding, 我曾经说过"无 Sharding, 不分布式", 指出没有严谨 Sharding 机制的多副本系统是伪分布式, 即使是所谓的强一致性多副本系统, 如无 Sharding 便是"伪分布式". Sharding 也是计算机科学领域核心思想之一的分而治之思想.

所以, 如果你遇到因为锁粒度太大导致多个并发操作相互阻塞的问题, 最直接的解决方案就是分析细化和拆分资源(做 Sharding), 不同的资源对应不同的锁, 这样就解决了阻塞问题. 一些初学者非常害怕和排斥锁, 我觉得没有必要. 程序的本质是串行化, 是锁, 我们能做的无非是:减小锁粒度.

Sharding 是一种竖直分拆, 分拆出来的每一个 Shard 都是完全独立的(shared-nothing). 这一点和接下来要提到的 Leveling 在空间上刚好垂直.

Leveling

Leveling 是一种水平分拆, 也叫 Layering(多层级). 在数据库领域, 它也叫 Multi Versioning(MVCC). 和 Photoshop 里作图类似, Leveling 包含多个 Level(层), 将不同的层级进行叠加(Merge), 最终形成一个统一的输出对象.

和 Photoshop 类似, 我们可以独立地操作每一个层, 如果需要加锁, 那就加在层上面, 因此, 也达到了减小锁粒度的效果. 看到了吧? 并发编程的唯一指导思想就是减小锁粒度. 妄图完全消除锁, 将在指导思想上发生根本错误.

Leveling 和 Sharding 技术的区别, 就在于它们如何对外展现. Leveling 需要将所有层进行合并, 才能输出结果. 而 Sharding 技术中的每一个 Shard, 可以独立地输出结果. 显然, 在这一点上 Sharding 技术要优于 Leveling. 既然 Sharding 更优, 为什么还需要 Leveling 呢? 因为, 事物并不总是可以做 Sharding, 有时候你做不了 Sharding.

单点标记

单点标记不是并发编程的核心原则, 而是 Leveling 技术的常见优化手段. 我们知道, Leveling 技术需要合并(Merge)操作, 合并操作可能成本较大, 这时, 我们需要把结果进行缓存. 但缓存和原始的层是同等地位的, 可能出现所谓的不一致(不相同)的问题, 所以, 需要引入一个单点标记, 对两者是否一致进行确认(check point, commit point), 就好像把两个子节点挂到了同一个父节点之下.

另外, 合并操作涉及很多算法, 某些算法不需要缓存, 仅仅是从多层(多个节点)之中选出一个 Winner, 以该 Winner 作为输出结果. 这时, 单点标记就是输出结果的指针, 指向 Winner.

总结

总结出简洁的基础理论, 对我们的工作有什么帮助呢? 我认为, 一是可以帮助我们记忆, 二是掌握了基础理论之后, 可以随时推导出已有的大量纷纭复杂的技术, 不至于被乱花迷了眼.

另外, 并发编程和分布式系统本质上如此相似, 后面我将写一些文章, 用同样的基础理论对分布式系统进行分析.

关键词:

资讯
业界
企业
骑闻
产品
聊聊并发编程两原则,你明白了吗?
之前写过一篇文章,并发编程的核心技术–多版本(MultiVersioning),本文
2023-06-14
“文化和自然遗产日”非遗宣传展示活动丰富多彩 与非遗相伴 和传统同行_全球动态
在“家门口”欣赏非遗展览、听传统戏曲,在网络上购买非遗文创、看非遗
2023-06-14
信息:海南琼海警方打掉一利用买卖黄金“洗钱”团伙
近日,琼海警方打掉一个涉嫌买卖黄金“洗钱”的电诈团伙,抓获苏某宁、
2023-06-14
四要素决定A股大方向!
6月14周三早评:四要素决定A股大方向!一、决定市场强弱四要素:资金面
2023-06-14
海关总署推出16条优化营商环境新举措
新华社北京6月13日电(记者邹多为)记者从海关总署13日召开的例行记
2023-06-14
多家央企、国企接连辟谣!
近日,多家央企、国企发布公告称,被不法分子假冒企业名义行骗。中国船
2023-06-14
生活知识 手机如何使用GPS定位
若要在手机的位置服务等应用程序中使用GPS,请先开启GPS,操作步骤如下。在手机主页面上选择设置。进入设置页面,点击高级设置。在高级设置
2023-01-20
  中新网海口1月23日电(符宇群)海南省第六届人民代表大会第五次会议23日在海口举行第二次全体会议。海南省人民检察院检察长张毅在作报告
2022-01-24
  中新网太原1月23日电 (高雨晴 冉涌 张鹏宇)记者23日从国网山西省电力公司获悉,该公司冬奥保电应急发电队伍已到达河北张家口赛区,
2022-01-24
  中新网西宁1月23日电 (记者 李江宁)据青海省地震局23日消息,中国地震台网正式测定,北京时间2022年1月23日10时21分,在青海海西州德
2022-01-24
  中新网贵阳1月23日电 (周燕玲)对外开放,是内陆开放型经济试验区贵州正在召开的两会热点词汇,如何拓展海内外“朋友圈”助力贵州经济
2022-01-24
温馨生活好young 厦门推广文旅产品火爆全网
  中新网厦门1月23日电 (记者 杨伏山)“冬日暖阳厦门好young”福建省内宣传推广线下活动22日精彩收官。主办方称,本次活动火爆全网及福
2022-01-24
权威百科知识 狐狸和葡萄园寓言的寓意
狐狸和葡萄园寓言的寓意:1、做人做事要实事求是,且不可自欺欺人。吃不到葡萄就说葡萄酸,不但脱离了实事求是,更是自欺欺人。有人对于得
2023-01-20
沧州:8个重大科技专项项目确定 引领经济社会高质量发展
为充分发挥科技在经济社会高质量发展中的引领和支撑作用,沧州市确定8个项目为2021年全市重大科技专项项目。这8个重大科技专项项目分别为:
2022-03-19
  中新网海口1月23日电(王子谦 符宇群)海南省高级人民法院院长陈凤超23日说,2021年海南法院为自贸港建设提供坚强司法保障,全年有效管
2022-01-24
  新华社武汉1月23日电(记者王贤)随着春节假期临近,从广州、深圳等地返回湖北的旅客较多。为此,23日,武汉站、汉口站、襄阳东站、十堰
2022-01-24
  1月22日0—24时,广东省新增本土确诊病例3例和本土无症状感染者1例,均为珠海报告。23日,珠海市疫情防控新闻发布会上,珠海市政府副秘
2022-01-24
青海海西州德令哈市发生3.7级地震
  据中国地震台网正式测定,1月23日11时58分在青海海西州德令哈市发生3 7级地震,震源深度9千米,震中位于北纬38 40度,东经97 35度。
2022-01-24
知识问答 不负众望和不孚众望意思一样吗
最佳答案不一样。不孚众望意思是不能使大家信服,未符合大家的期望。出自于《诗经:大雅下武》。孚:信服。成语不负众望,意思是指为人所信
2023-01-20
  中新网宿迁1月23日电 (刘林 张华东)核酸检测是当下及时发现潜在感染者、阻断疫情传播的有效方法。23日,记者从宿迁市宿豫区警方获悉
2022-01-24
  记者从天津市人社局获悉,从明天(24日)起,天津2022年度第一期积分落户申报工作正式开始,这是新修订的《天津市居住证管理办法》《天津
2022-01-24
  中新社北京1月23日电 (记者 刘亮)记者23日从中国海关总署获悉,2021年,中国海关组织开展“国门绿盾”专项行动,在寄递、旅客携带物
2022-01-24
  记者从天津市疫情防控指挥部获悉,天津疫情第341—360例阳性感染者基本信息公布。  目前,这20例阳性感染者已转运至市定点医院做进一
2022-01-24
“最美基层民警”武文斌:案子破了最管用
  中新网吕梁1月23日电 题:“最美基层民警”武文斌:案子破了最管用  作者 高瑞峰  同事称他为“拼命三郎”。从警14年,武文斌破
2022-01-24
中文百科 微信8.0状态背景图怎么设置
最佳答案打开微信8 0版本,点击我的;点击头像下方的+状态;进入之后,拖到最下面,点击未知(或其它想设置的状态);点击拍摄,可以直接拍摄图
2023-01-20
  中新网西宁1月23日电 (记者 孙睿)据青海省地震台网测定,2022年1月23日10点21分(北京时间)在青海省海西州德令哈市(北纬38 44度,东经
2022-01-24
江西南昌:市民赏年画迎新年 书法家挥毫送春联
  (新春见闻)江西南昌:市民赏年画迎新年 书法家挥毫送春联  1月23日,“赏年画过大年”新年画作品联展江西南昌站活动在江西省文化馆
2022-01-24
  中新网成都1月23日电 (祝欢)成都市第十七届人民代表大会第六次会议23日在成都举行,成都市中级人民法院院长郭彦与成都市人民检察院检
2022-01-24
列车临时停车3分钟救旅客
  (新春见闻)列车临时停车3分钟救旅客  中新网广州1月23日电 (郭军 黄伟伟)“车长,车长,4号车厢有位旅客腹涨难忍,身体不舒服”…
2022-01-24
女子背负命案潜逃24年 因涉疫人员核查落网
  中新网湖州1月23日电(施紫楠 徐盛煜 赵学良)1998年7月,犯罪嫌疑人杜某因家庭琐事,用菜刀将自己的弟媳砍伤致死。案发后,她从老家河
2022-01-24
01-20 百科知识 真正的刘三姐有多少岁
百科知识 真正的刘三姐有多少岁
刘三姐是民间传说的人物,并没有真实历史记载,甚至连名字和故事很多都是后人虚构添加的,因此无法考证具体年龄。如果按其原型人物刘三妹的 [详细]
03-19 2022岳阳国际旅游节开幕 特色农产品展销等系列活动目不暇接
2022岳阳国际旅游节开幕 特色农产品展销等系列活动目不暇接
今天,天下洞庭岳阳市君山区第九届良心堡油菜花节暨2022岳阳国际旅游节开幕,菊红、粉红、水红、桃红、紫色、白色等七色组成的4万亩花海在 [详细]
03-19 2022年郴州计划重点推进文旅项目101个 总投资354亿元
2022年郴州计划重点推进文旅项目101个 总投资354亿元
3月16日,我市举行全市文旅项目和城市大提质大融城项目集中开工仪式,市委书记吴巨培宣布项目开工。郴州嘉合欢乐世界、仙福路工地清风徐来 [详细]
03-19 宿州泗县深入推进文旅融合发展 擦亮城市品牌
宿州泗县深入推进文旅融合发展 擦亮城市品牌
近年来,泗县以争创安徽省文化旅游名县为目标,深入推进文旅融合发展,努力擦亮水韵泗州 运河名城城市品牌,全县文化旅游业实现高质量发展 [详细]
03-19 淡季不忘引流 京郊民宿市场有望迎来回暖
淡季不忘引流 京郊民宿市场有望迎来回暖
旅游淡季中的京郊民宿有望成为市场中最先复苏的板块。3月17日,北京商报记者调查发现,虽然正值旅游淡季,且受疫情变化的影响,不过各家民 [详细]
01-24 西安浐灞回应“社区领导怒怼咨询群众”:涉事社区主任已停职
西安浐灞回应“社区领导怒怼咨询群众”:涉事社区主任已停职
西安浐灞回应“一社区领导在市民咨询离市政策时发生争执”事件 涉事社区主任已停职  西部网讯(记者 刘望)日前,网络上流传一条视频 [详细]
01-24 陕西:截至23日12时 西安56.5万大中专学生已离校返家
陕西:截至23日12时 西安56.5万大中专学生已离校返家
1月23日,陕西省举行第45场疫情防控工作发布会,发布会上陕西省教育厅相关负责人通报,陕西全省疫情有效控制后,大中专学校能不能放假 [详细]