Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1398929
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: Erlang

2013-02-22 11:33:26

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

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

        如:

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

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

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

       如:

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


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

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

阅读(2566) | 评论(0) | 转发(2) |
0

上一篇:负载均衡技术讨论

下一篇:认识dhcp

给主人留下些什么吧!~~