「高频面试题」并发编程的特性是什么?

简介: 「高频面试题」并发编程的特性是什么?

原子性

原子性(Atomicity)是指:在一次或者多次操作时,要么所有操作都被执行,要么所有操作都不执行。

在Java内存模型中,只保证了基本读取和赋值的原子性操作。如果想保证多个操作的原子性,需要使用synchronized关键字或者Lock相关的工具类。如果想要使int、long等类型的自增操作具有原子性,可以用java.util.concurrent.atomic包下的工具类,如:AtomicIntegerAtomicLong等。另外需要注意的是,volatile关键字不具有保证原子性的语义。

可见性

可见性(Visibility)是指:当一个线程对共享变量进行修改后,另外一个线程可以立即看到该变量修改后的最新值。

可以使用volatilesynchronized关键字和Lock相关的工具类保证可见性。

有序性

有序性(Ordering)是指:程序执行的顺序按照代码的先后顺序执行。

除了Happens-Before原则提供的天然有序性,我们还可以使用volatilesynchronized关键字和Lock相关的工具类保证有序性。

参考答案

原子性、可见性、有序性

相关文章
|
8月前
|
安全 算法 Java
去某东面试遇到并发编程问题:如何安全地中断一个正在运行的线程
一个位5年的小伙伴去某东面试被一道并发编程的面试题给Pass了,说”如何中断一个正在运行中的线程?,这个问题很多工作2年的都知道,实在是有些遗憾。 今天,我给大家来分享一下我的回答。
66 0
|
9月前
|
资源调度
JUC并发编程之同步器(Semaphore、CountDownLatch、CyclicBarrier、Exchanger、CompletableFuture)附带相关面试题
1.Semaphore(资源调度) 2.CountDownLatch(子线程优先) 3.CyclicBarrier(栅栏) 4.Exchanger(公共交换区) 5.CompletableFuture(异步编程)
104 0
|
4天前
|
安全 Go 开发者
Golang深入浅出之-Go语言并发编程面试:Goroutine简介与创建
【4月更文挑战第22天】Go语言的Goroutine是其并发模型的核心,是一种轻量级线程,能低成本创建和销毁,支持并发和并行执行。创建Goroutine使用`go`关键字,如`go sayHello("Alice")`。常见问题包括忘记使用`go`关键字、不正确处理通道同步和关闭、以及Goroutine泄漏。解决方法包括确保使用`go`启动函数、在发送完数据后关闭通道、设置Goroutine退出条件。理解并掌握这些能帮助开发者编写高效、安全的并发程序。
24 1
|
4天前
|
Java Go 调度
Go语言并发编程原理与实践:面试经验与必备知识点解析
【4月更文挑战第12天】本文分享了Go语言并发编程在面试中的重要性,包括必备知识点和面试经验。核心知识点涵盖Goroutines、Channels、Select、Mutex、Sync包、Context和错误处理。面试策略强调结构化回答、代码示例及实战经历。同时,解析了Goroutine与线程的区别、Channel实现生产者消费者模式、避免死锁的方法以及Context包的作用和应用场景。通过理论与实践的结合,助你成功应对Go并发编程面试。
27 3
|
4天前
|
前端开发 UED 开发者
面试题:css3新增的特性
面试题:css3新增的特性
15 0
|
4天前
|
C++
面试题之c++11新特性,你真的会答吗
面试题之c++11新特性,你真的会答吗
|
4天前
|
NoSQL Java 关系型数据库
2024最新500道Java高岗面试题:数据库+微服务 +SSM+并发编程+..
今天分享给大家的都是目前主流企业使用最高频的面试题库,也都是 Java 版本升级之后,重新整理归纳的最新答案,会让面试者少走很多不必要的弯路。同时每个专题都做到了详尽的面试解析文档,以确保每个阶段的读者都能看得懂。
|
4天前
|
Java 程序员
【Java程序员面试专栏 专业技能篇 】Java SE核心面试指引(四):Java新特性
【Java程序员面试专栏 专业技能篇 】Java SE核心面试指引(四):Java新特性
36 1
|
11月前
|
Java API 容器
常见面试题(jdk1.8的新特性(高薪常问))
jdk1.8的新特性(高薪常问)
368 0
|
6月前
|
Java
面试--什么是面向对象?面向对象三大特性?
面试--什么是面向对象?面向对象三大特性?
34 0