美文网首页
线程安全的实现方法(3)---无同步方案

线程安全的实现方法(3)---无同步方案

作者: Bre_eze | 来源:发表于2018-06-21 17:20 被阅读0次

    同步只是保证共享数据争用时的正确性的手段,如果一个方法本身就不涉及共享数据,那它自然就无需任何同步所示去保证正确性。

    这里介绍两类这样的代码:

    可重入代码:可以在代码执行的任何时刻中断它,转而去执行另外一段代码,而在控制权返回之后,原来的程序不会出现任何的错误。

    可重入代码有一些公共的特征,例如不依赖存储在堆上的数据和公用的系统资源、用到的状态量都由参数传入、不调用非可重入的方法等。简而言之:如果一个方法,它的返回结果是可以预测的,只要输入了相同的数据,就能返回相同的结果,那它就满足可重入性的要求,当然也就是线程安全的。

    线程本地存储:如果一段代码所需要的数据必须与其他代码共享,那就看看这些共享数据的代码是否能保证在同一个线程中执行?如果能保证,我们就可以把共享数据的可见范围限制在同一个线程之内,这样,即是无同步也能做到避免数据争用。

    相关文章

      网友评论

          本文标题:线程安全的实现方法(3)---无同步方案

          本文链接:https://www.haomeiwen.com/subject/jwzqyftx.html