C#面试题更新 2026-08-05

在 C# 并发编程中,Interlocked.Exchange 方法为何能保证变量更新的原子性?请解释其使用方式和底层原理。

技术原理C#

考察说明

考察对 Interlocked.Exchange 原子操作的理解及其在 C# 并发场景中的应用。

回答思路

  1. 【回答框架 1】Interlocked.Exchange 是 System.Threading 提供的原子方法,返回原始值并赋新值,整个操作在硬件层面保证原子性。
  2. 【回答框架 2】适用于共享变量的安全更新,如计数器、状态标志,避免 lock 开销。
  3. 【回答框架 3】Interlocked.Exchange 保证的是单变量更新原子性,不涵盖多变量一致性问题。
  4. 【关键点 1】Interlocked.Exchange 执行读和写两个操作,但作为一个原子操作执行。
  5. 【关键点 2】它避免使用锁,减少线程阻塞,提高性能。
  6. 【关键点 3】适用于简单值类型如 int、long 等,不适用于复杂对象。
  7. 【易错点 1】Interlocked 操作只保证原子性,不保证内存可见性之外的行为(如 volatile 的优化)。
  8. 【易错点 2】不要将 Interlocked.Exchange 用于复杂逻辑,它只处理单变量。