百科问答小站 logo
百科问答小站 font logo



C# 中的原子的基础数据类型能否用于同步多线程? 第1页

  

user avatar   ling-jian-94 网友的相关建议: 
      

要加volatile,不涉及到什么内存屏障那么复杂的问题,而是如果不加,编译器很可能假设你访问的这个变量不会被其他线程同时访问,于是不会重新加载,你实际上是在反复读取一个寄存器的值。加了volatile,编译器就在每次访问这个变量的时候强制去读取内存中的值。更低层的问题是跟虚拟机实现有关了,但是至少在x86/x64上这个程序工作没有问题。但是这么实现效率很低(不管是长时间的锁还是短时间的锁都是),请使用Event一类的同步对象。




  

相关话题

  C#有哪些有名的依赖注入的框架? 
  创业公司选择 .NET 技术栈究竟比选 Java/Python 贵多少钱? 
  工作中只能使用C#的基本语法,根本用不到任何如ASP.NET等成熟.Net技术,个人应该如何提高呢? 
  为什么很多人都说使用微软技术的公司是小公司?是不是微软的技术入门简单? 
  C# 中 加入 F# 中的那种 管道运算符 “|>” 会怎么样? 
  C#新启线程导致主线程卡住的问题? 
  重度强迫,只认 C#,其它不学不问,该如何是好? 
  android主线程如何保证获取足够的时间片? 
  关于自己写的ASP.NET MVC控件找不到视图的问题? 
  win 10的内置.net版本是多少?向后兼容的情况如何? 

前一个讨论
培训机构作为编程的重新开始,是不是正确的选择?
下一个讨论
为什么电风扇只能选择一二三级风这种离散型的值,而不是从零到三连续型的?





© 2025-03-24 - tinynew.org. All Rights Reserved.
© 2025-03-24 - tinynew.org. 保留所有权利