浅谈同步性

  今天,cgg约好和同学出去打篮球,但由于cgg是个好学生,没有手机,所以没带手机。结果我去那里的时候,发现那里并没有人,于是我只好回家。后来,问他们,得知他们在周围没在原来的地方,因为那家体育馆没有篮球场了。
  为什么我会和同学错过?其实这就是数据的不同步导致的。由于我没有手机,导致我一旦出门就会失去与他们的联系,这就会导致他们改变计划时,该计划不能与我得知的计划同步。所以,这就体现出来数据同步的重要性。
  那么数据同步性下降带来的危害是什么呢?就是任务的可变性的下降。所谓可变性,是指任务在执行中是否能改变。同步性好的时候,任务是完全可变的,因为,一旦一方修改任务,另一方可以通过数据的同步,来通知其他线程,对任务进行改变。若同步性不好,就会导致,一旦约定好任务,在执行的过程中,就不能改变,或者说不能单方改变,如果单方改变,改变的那一方会按自己改变后的任务执行,不改变的那一方会按原计划执行,最终一团乱麻(码)。比如说我被放鸽子的例子,我就是按原计划执行,按时按地执行,而他们提前到后,擅自改变计划,并即可执行,而且没法立刻通知我,所以造成了我被放鸽子的“悲剧”。
  同步性差,危害就是任务可变性差,但成本可能会降低(比如说,我不需要花钱去买手机);同步性好,成本肯定的是要的,但可变性好得多,随便怎么改变计划,都可以。
  所以在我们写多线程程序时,一定要注意数据的同步性,毕竟花的代价也不是很多(程序员多动动脑子,多动动手)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值