ChinaUnix.net
相关文章推荐:

java volatile 死循环

今天由于要写一个线程进程,无意中看到了volatile的用法,觉得非常有用。 一般的,如果多个线程协作存、取某个变量时,一般需要用到synchronized关键字进行同步操作,如: public class MyTestThread extends MyTest implements Runnable { private boolean _done = false; public synchronized boolean getDone() { return _done; } public synchronized void setDone(boolean b) { _d...

by rc_hz - Java文档中心 - 2006-08-24 13:23:26 阅读(436) 回复(0)

相关讨论

不常用到的关键字有:const,goto,native,strictfp,transient,volatile。 const和goto为java中的保留字。 1. native native是方法修饰符。Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。因为在外部实现了方法,所以在java代码中,就不需要声明了,有点类似于借口方法。Native可以和其他一些修饰符连用,但是abstract方法和Interface方法不能用native来修饰。 Example: java代码 public inter...

by red_justice - Java文档中心 - 2009-07-10 15:45:20 阅读(925) 回复(0)

java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 java 理论与实践 中,Brian Goetz 将介绍几种正确使用 volatile 变量的模式,并针对其适用性限制提出一些建议。 java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchr...

by sunwei0325 - Java文档中心 - 2009-04-02 09:32:40 阅读(600) 回复(0)

不常用到的关键字有:const,goto,native,strictfp,transient,volatile。 const和goto为java中的保留字。 1. native native是方法修饰符。Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。因为在外部实现了方法,所以在java代码中,就不需要声明了,有点类似于借口方法。Native可以和其他一些修饰符连用,但是abstract方法和Interface方法不能用native来修饰。 Example: java代码 public interf...

by mykingdom - Java文档中心 - 2008-07-02 11:32:18 阅读(667) 回复(0)

在多线程的环境下,每个线程尤其在多处理机系统里可能会保留一些变量的本地复本,编译器可能优化代码使得各线程的复本不能同步得到更新,而使用volatile之后,告诉编译器不做任何优化,保持各线程的本地复本同步读写操作。 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/10296/showart_1270566.html

by pianoch - Java文档中心 - 2008-09-29 17:35:21 阅读(750) 回复(0)

虽然已经学了很久的c++,但是对于这个关键字的功能还没有切实的了解,能给个例子,让我清晰的看到该关键字所起的作用. 谢谢.!!!

by mingjwan - C/C++ - 2004-12-20 10:48:06 阅读(1663) 回复(3)

ava™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 java 理论与实践 中,Brian Goetz 将介绍几种正确使用 volatile 变量的模式,并针对其适用性限制提出一些建议。 java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchro...

by welkin - Java文档中心 - 2009-07-17 13:25:18 阅读(840) 回复(0)

1. native native是方法修饰符。Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。因为在外部实现了方法,所以在java代码中,就不需要声明了,有点类似于借口方法。Native可以和其他一些修饰符连用,但是abstract方法和Interface方法不能用native来修饰。 Example: 代码 public interface TestInterface { void doMethod(); } public class Test implements TestInterface { ...

by red_justice - Java文档中心 - 2009-07-10 15:42:13 阅读(1005) 回复(0)

刚才搜索出来一个关于setjmp和longjmp的小程序如下: #include #include static jmp_buf buf; int main() { // volatile int b; // 1 int b ; b =3; if(setjmp(buf)!=0) { printf("%d ", b); exit(0); } b=5; longjmp(buf , 1); } 我的平台是:fc4,大家按照下面几种编译方式,分别看看运行结果,我被搞晕了。 (1)使用volatile,编译时不管优...

by anank - C/C++ - 2008-08-26 16:52:14 阅读(2237) 回复(11)

volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程同时与某个对象交互时,就必须要注意到要...

by craighit - Java文档中心 - 2007-04-15 21:34:22 阅读(457) 回复(0)

今天看ANSI_C 99的时候看到一段: Alternatively, an implementation might perform various optimizations within each translation unit, such that the actual semantics would agree with the abstract semantics only when making function calls across translation unit boundaries. In such an implementation, at the time of each function entry and function return where the calling function and the called functi...

by zzdts - C/C++ - 2007-03-30 00:17:58 阅读(1037) 回复(3)