.NET/C#⾯试题汇总系列:多线程

[复制链接]
发表于 2026-1-23 01:54:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1.根据线程安全的相干知识,分析以下代码,当调⽤test⽅法时i>10时是否会引起死锁?并简 要阐明来由。

  1. public void test(int i)
  2. {
  3.     lock(this)
  4.     {
  5.         if (i>10)
  6.         {
  7.             i--;
  8.             test(i);
  9.         }
  10.     }
  11. }
复制代码
不会发⽣死锁,(但有⼀点int是按值转达的,以是每次改变的都只是⼀个副本,因此不会出现死锁。但如 果把int换做⼀个object,那么死锁会发⽣)
   lock 关键字:
  用于确保当多个线程同时访问共享资源时,不会发生数据竞争(race condition)或数据不划一的题目。
  lock 语句通过获取给定对象的互斥锁来同步代码块,以确保一次只有一个线程可以实行该代码块。
   
       
  • 示例 : 线程安全的聚集使用  
  1. public class ThreadSafeList<T>
  2. {
  3.     private readonly List<T> _list = new List<T>();
  4.     private readonly object _lockObject = new object();
  5.     public void Add(T item)
  6.     {
  7.         lock (_lockObject)
  8.         {
  9.             _list.Add(item);
  10.         }
  11.     }
  12.     public void Remove(T item)
  13.     {
  14.         lock (_lockObject)
  15.         {
  16.             _list.Remove(item);
  17.         }
  18.     }
  19.     public List<T> GetAll()
  20.     {
  21.         lock (_lockObject)
  22.         {
  23.             return new List<T>(_list);
  24.         }
  25.     }
  26. }
复制代码
在这个例子中,我们创建了一个线程安全的列表类 ThreadSafeList<T>,此中 Add 和 Remove 方法使用 lock 来确保对列表的修改是线程安全的。GetAll 方法也使用 lock 来确保在返回列表的副本时,列表的状态是划一的。
  2.形貌线程与历程的区别?

   
       
  • 界说与区别‌:
           
    • ‌历程‌(Process)是体系举行资源分配和调理的一个独立单元,是使用体系布局的根本。它是应用步伐的一次动态实行过程,是步伐代码及其数据在运行时的一个实例。它拥有独立的内存空间,包罗一组体系资源(如代码、数据和打开的文件等)。     
    • ‌线程‌(Thread)是历程的一个实体,是CPU调理和分派的根本单元,它是比历程更小的独立运行的单元。一个历程可以拥有多个线程,这些线程共享该历程的全部资源(如内存和打开的文件),但每个线程都拥有自己独立的实行栈和步伐计数器。   
       
  • ‌资源与开销‌:
           
    • 历程拥有独立的内存空间和体系资源,因此历程间的通讯相对复杂,开销也较大。     
    • 线程共享历程的资源,因此线程间的通讯相对简单,开销也较小。   
       
  • ‌独立性‌:
           
    • 历程拥有更高的独立性,一个历程的瓦解通常不会影响到其他历程。     
    • 线程则否则,一个线程的瓦解大概会导致整个历程的瓦解(取决于线程的非常处置惩罚机制)。   
      
  3.Windows单个历程所能访问的最⼤内存量是多少?它与体系的最⼤假造内存⼀样吗?这对 于体系计划有什么影响?

   这个必要针对硬件平台,公式为单个历程能访问的最⼤内存量=2的处置惩罚器位数次⽅/2,⽐如通常环境下,
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表