线程安全的实现方法(3)---无同步方案
【线程安全的实现方法(3)---无同步方案】同步只是保证共享数据争用时的正确性的手段,如果一个方法本身就不涉及共享数据,那它自然就无需任何同步所示去保证正确性。
这里介绍两类这样的代码:
可重入代码:可以在代码执行的任何时刻中断它,转而去执行另外一段代码,而在控制权返回之后,原来的程序不会出现任何的错误。可重入代码有一些公共的特征,例如不依赖存储在堆上的数据和公用的系统资源、用到的状态量都由参数传入、不调用非可重入的方法等。简而言之:如果一个方法,它的返回结果是可以预测的,只要输入了相同的数据,就能返回相同的结果,那它就满足可重入性的要求,当然也就是线程安全的。
线程本地存储:如果一段代码所需要的数据必须与其他代码共享,那就看看这些共享数据的代码是否能保证在同一个线程中执行?如果能保证,我们就可以把共享数据的可见范围限制在同一个线程之内,这样,即是无同步也能做到避免数据争用。
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量