Java并发编程开发笔记——1简言

    xiaoxiao2023-06-10  191

    线程

    风险:Java对线程的支持其实是一把双刃剑。 安全性问题:线程安全性可能是非常复杂的,在没有充足同步的情况下,多个线程的操作执行顺序是不可预测的,甚至会产生奇怪的结果。

    @NotThreadSafe是一个自定义标注,用于说明类和类成员的并发属性。(其他标注包括@ThreadSafe和@Immutable)。如果用@ThreadSafe来标注某个类,那么开发人员可以放心地在多线程环境下使用这个类,维护人员也会发现它能保证线程安全性,而软件分析工具还可以识别出潜在的编码错误。 在UnsafeSequence类中说明的是一种常见的并发安全问题,称为竟态条件(Race Condition)。在多线程环境下,getValue是否会返回唯一的值,要取决于运行时对线程中操作的交替执行方式,这并不是我们希望看到的情况。 由于多个线程要共享相同的内存地址空间,并且是并发运行,因此它们可能会访问或修改其他线程正在使用的变量。 通过将getNext修改为一个同步方法,可以修复UnsafeSequeance中的错误。

    活跃性问题

    线程问题

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)