- 0
- 0
- 约7.06千字
- 约 19页
- 2026-03-10 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年阿里巴资深程序员技术面试题及答案
一、编程语言基础(5题,每题10分,共50分)
1.题目:
请解释Java中的`volatile`关键字的作用,并说明它与`synchronized`关键字的主要区别。
答案与解析:
`volatile`关键字用于标记变量,确保其读写操作的可见性和有序性,但不保证原子性。具体作用如下:
1.可见性:当一个线程修改了volatile变量的值,其他线程能够立即看到这个修改。
2.有序性:禁止指令重排,保证volatile变量前后的代码执行顺序与程序代码顺序一致。
与`synchronized`的区别:
-性能:`volatile`轻量级,仅影响变量读写的可见性,而`synchronized`涉及锁机制,性能开销更大。
-原子性:`volatile`不保证复合操作(如`i++`)的原子性,需手动实现;`synchronized`可以保证复合操作的原子性。
-应用场景:`volatile`适用于多线程共享状态标志(如`boolean`开关),`synchronized`适用于需要保护数据完整性的场景。
2.题目:
Python中,如何实现一个线程安全的计数器?
答案与解析:
使用`threading.Lock`或`threading.RLock`实现:
python
importth
原创力文档

文档评论(0)