- 1
- 0
- 约6.96千字
- 约 21页
- 2026-10-13 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年工程师岗位面试问题及答案参考手册
一、编程语言基础(共5题,每题10分)
1.题目:请解释Java中的`volatile`关键字的作用,并说明它与`synchronized`的区别。
答案:
`volatile`关键字主要用于确保变量的可见性和禁止指令重排序,但不保证原子性。
-可见性:当一个线程修改了volatile变量时,其他线程能够立即看到这个修改。
-禁止指令重排序:编译器和处理器不会对volatile变量的读写操作进行重排序,确保代码逻辑的正确性。
`synchronized`关键字则提供互斥锁,保证同一时间只有一个线程可以执行同步代码块或方法,同时具有原子性。
-互斥性:防止多个线程同时访问共享资源。
-原子性:确保被同步代码块或方法的操作是原子的。
解析:
`volatile`适用于读多写少的场景,而`synchronized`适用于写多且需要保证原子性的场景。例如,在分布式系统中,使用`volatile`可以实现线程安全的单例模式,而`synchronized`适合处理复杂的共享状态。
2.题目:Python中,如何实现一个线程安全的计数器?
答案:
可以使用`threading.Lock`或`queue.Queue`实现线程安全计数器。以下示例使用`Lock`:
python
import
原创力文档

文档评论(0)