C线程资源同步方式总结.docVIP

  • 2
  • 0
  • 约8.74千字
  • 约 14页
  • 2019-04-05 发布于广东
  • 举报
C#线程资源同步方式总结 往现代的程序开发屮,资源的同步是一个比较重要的课题,在.Net屮,对这部分有很丰富炎厍供我们使 用,现在总结一下在各种情况下对资源同步的 机制。 1.将字段声明为volatile 当一个字段被声明为volatile时,CLR屮一些矜理代码和内存的内部机制将负责对字段进行同步,并 IL总能保证读取到的字段信息都为坡新的似,被声明为 volatile的字段必须具备以下特征之一 为引川类型 2?—个指针(在不安全代码中) sbyte,byte,short,ushort,int,uint,char,float,bool 一 ?个使用底层类型的枚举类型 2.使用 System.Threading.Interlocked 在许多增对整数的操作屮,我们都比较界易忽视线程的问题,例如执行下列代码 i = i + 1; 实际上,上述代码分为3步骤 .从内存中,读取i的值 .将读取出来的位加1 .将新的值写入内存中 在单线程上,这个操作不会育任何问题,似是当i被多个线程访问时,问题就fli现丫,对i进行修改的线 程,在上述的任何一部都冇可能被艽它读取线程打断,想象一下, 当操作线程执行完第二步,准务将新的位写入内存中吋,此吋其它渎取线程获得了执行权,这吋渎取到的i的 位并不是我们想要的,因此,这个操作不其备原子性,在.Net中,使川Interlocked类能确保操作的股子 性

文档评论(0)

1亿VIP精品文档

相关文档