同时改同一样东西
两人同一个瞬间改同一样东西,结果可能就乱。一个一个来才对。
两个人改同一格
墙上贴着一张写了数字的便条。现在是10。两个人各自想往上加1。
一个人看到10,心里算出11,在便条上写下11。另一个人也照样做。可要是两人几乎同一个瞬间开始,两人看到的都是原来的10,两人写下的都是11。
加了两次1,本该是12,结果却是11。少了一次。这就是同一个瞬间改同一样东西闹出的事故。
两人同时改同一个值,加的里头有一个就没了
同一个瞬间改同一样东西,结果可能就乱了。
同样的动作,不一样的结果
还是那两个人,还是各加1,可只把时机改一改。
轮着来:一个人看到10,写下11,做完了,另一个人再看着那个11,写下12。结果12,对的。
撞着来:一个人读了10,还没来得及写,另一个人也把10读走了。两人都写11,结果是11,错了。
动作一模一样。就因为谁在什么时候插了进来,单单这个时机,分出了对和错。
同样是加,轮着来就对,撞一块就错
分出结果的不是动作,而是谁在什么时候插进来的时机。
自己来撞撞看
两个工人各自往同一个值上加1。两人开始时撞得多紧,自己来调一调。
拉得够开,一个做完另一个才开始,结果就对。靠得近了,一个还没写另一个就读走了,一次就没了。
拖动滑块,看看从哪个点开始结果就崩。同样的两个动作,可一撞上,结果就塌了。
改改撞的紧密程度,看看从哪儿开始结果就崩
把两人拉开结果就对,撞得越紧,崩的风险就越大。
要是一个一个轮着来
那怎么防呢。答案很简单。在改同一样东西的工夫,只让一个人动手。
一个人读、改、写的这段时间,别人都等着。这一组做完,下一个人才开始。就像排一个只有一间的厕所。里头有人,门就锁上,出来了下一个才进。
这么一来就没有撞的机会,结果就总是对的。代价是多了等待的时间。为了安全,接受排一小会儿队。
改同一样东西的工夫只许一个人,其余排队等着
让大家一个一个轮着改同一样东西,撞就没了,结果就安全了。
一页纸总结
记住三点就够了。
第一,同一个瞬间改同一样东西会出事故。两人同时加就少一次那样,结果可能就乱。
第二,问题不在动作,在时机。同样的活儿轮着来就对,撞一块就错。第三,让大家一个一个来就安全。改同一样东西的工夫只许一个人,其余排队等着,结果就总是对的。
同时加共用是事故,时机是问题,一个一个就安全