代码之家  ›  专栏  ›  技术社区  ›  mkUltra

线程安全和线程兼容有什么区别?

  •  3
  • mkUltra  · 技术社区  · 7 年前

    线程安全和线程兼容有什么区别?

    升级版本: grpc documentation of StreamObserver .

    Characterizing thread safety 但我还是不清楚。

    如果一个方法需要在synchronize块中,这意味着它只是线程不安全?

    3 回复  |  直到 7 年前
        1
  •  6
  •   Peter Wishart    7 年前

    线程安全的 意味着一个对象可以被多个线程同时使用,并且仍然是正确的 1

    意味着对象做了一些事情(改变静态、线程本地存储等)来阻止它成为线程安全的。

    线程兼容 意味着不是 线程安全的 ,但不是 -因此,为了满足线程安全性,用户必须自己执行同步


    但是正确性的定义有点不同。。。

    Java In Theory And In Practice

    Geoff Romer at Google 维基百科把这定义为缺乏数据竞赛。

        2
  •  1
  •   sasa    6 年前

    线程安全是指对象在多个线程中并发使用是安全的,它是由java自身实现的; 虽然线程兼容不是线程安全的,但是当您在非线程安全的代码中包含一些同步代码或者有一个线程安全的包装器对象时,并发使用仍然是安全的,即您应该自己实现。

        3
  •  0
  •   David Soroko    7 年前

    thread compatible 是因为乔舒亚·布洛赫在 有效Java第1版 . 不管它值多少钱,它都不会出现在第二版中。在第二版中,我们有以下分类法

    • 无条件线程安全
    • 有条件线程安全
    • 线程不安全

    在我看来 线程兼容 not thread-safe