Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1087282
  • 博文数量: 646
  • 博客积分: 288
  • 博客等级: 二等列兵
  • 技术积分: 5375
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-08 14:33
个人简介

为了技术,我不会停下学习的脚步,我相信我还能走二十年。

文章分类

全部博文(646)

文章存档

2014年(8)

2013年(134)

2012年(504)

分类: Erlang

2013-02-25 10:19:05

原文地址:如何避免锁的使用 作者:liuzan_abc

       在多线程的编程环境下,经常要碰到共享数据的问题,一定要通过加锁的方式才能达到线程安全么?

        其实有些情况下,还是不需要加锁的,可以通过异常的方式来判断能否操作。

        如:

              连接对象的共享,在多线程的环境下,上层对象不管连接对象的可操作性,只管操作,但是要捕获异常,然后在更新连接对象的状态。

             对于某些纯数据对象,有时也可以通过2次的判断来解决并发,但是那不是绝对的安全。

        在某些非实时系统下,也不需要加锁,它不需要及时感知变化。

       如:

            某些关键的变量在执行写操作后,对它的读操作可以不用通过加锁,然后判定,允许有延迟。


       这里仅仅是提出一种思路,这种通过定义异常的方式来确定可操作性。

       对于像erlang这种语言,还不知道它是如何避免锁的使用的,需要好好学习。

阅读(556) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~