谁用过volatile,能讲讲有什么好处? The volatile keyword is a type qualifier used to declare that an object can be modified in the program by something such as the operating system, the hardware, or a concurrently executing thread. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 和以前c中的概念一样的吧,就是不使用CPU缓存的变量每次读取时都再次从内存中读取出来,主要用在多线程中比方一个变量 a,线程1读取后放到寄存器中,如果下次再读本来寄存器中已经有了,但是它还需要从内存中再次读取,因为线程2可能已经修改了这个变量,但是如果没有被申明成 volatile那么就可能直接从寄存器中取得那个变量的值了比方下面这个例子全局变量int n = 1;线程1while(n == 1);线程 2 ... n = 0; ...如果不使用volatile, 线程1可能永远死在循环中了尽管 n 会在 线程2中被设置成 0 谢谢楼上的老大,那么如果多线程的话,就必须声明变量为volatile,即使有同步的方法也要这么做,是么? 和同步没有什么关系的吧? 至于是否需要声明成volatile还是要看实际需要的吧并不是所有在线程中使用的全局变量都必须这样但像上面这样的例子是肯定要用volatile的 VS 调试时输出窗口显示的异常 来着有分~~ 关于textbox的疑问。~~~~~~~~~~~~~~ 水晶报表中这种行号怎么求 偶是C#菜鸟,小问个问题 神啊.救救我吧. 关于子线程更新显示界面的问题!!!! 请教msdn的问题,急!!! 求 《Visual C#数据库项目案例导航 》随书光盘代码 我对C#与.Net没有什么好说的了,说得太多累了不说,别人还说我没有资格说微软件的坏话? 求高手排列组合算法 怎样让TextBox变没有? 有关.net框架什么教材比较好? SharpDevelop源码讨论区
int n = 1;线程1
while(n == 1);线程 2
...
n = 0;
...
如果不使用volatile, 线程1可能永远死在循环中了尽管 n 会在 线程2中被设置成 0