Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1433348
  • 博文数量: 1334
  • 博客积分: 645
  • 博客等级: 上士
  • 技术积分: 5762
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-25 16:56
文章分类

全部博文(1334)

文章存档

2014年(108)

2013年(1059)

2012年(169)

分类: Erlang

2013-06-05 14:43:48

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

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

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

        如:

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

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

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

       如:

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


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

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

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