「每日一问」并发编程的特性是什么
《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】在 Java 内存模型中,只保证了基本读取和赋值的原子性操作。如果想保证多个操作的原子性,需要使用synchronized
关键字或者Lock
相关的工具类。如果想要使 int、long 等类型的自增操作具有原子性,可以用 java.util.concurrent.atomic 包下的工具类,如:AtomicInteger
、AtomicLong
等。另外需要注意的是,volatile
关键字不具有保证原子性的语义。
[](()可见性
可见性(Visibility)是指:当一个线程对共享变量进行修改后,另外一个线程可以立即看到该变量修改后的最新值。
可以使用volatile
、synchronized
关键字和Lock
相关的工具类保证可见性。
[](()有序性
有序性(Ordering)是指:程序执行的顺序按照代码的先后顺序执行。
评论