日期:2014-05-18  浏览次数:20797 次

c#关于volatile的解释
今天看到公司有这样子一种用法 
 private static volatile ISqlMapper m_mapper = null;
volatile的作用每次都让其变量的值为最新。。

Static的作用就是让其变量一直存在

这样子好像有点矛盾。。

求解释。。

------解决方案--------------------
volatile 只是说这个变量在用到的时候,每次去内存中取值,而不在寄存器中取值。
一般的应用中,volatile 是用来在多线程中保证使用最新值。
但是之前看过一篇测试文章,具体的文章地址找不到,内容就是说volatile 并不是100%的安全,结论就是,慎用。