java thread volatile 理解
Java Thread有一个 volatile关键字,主要用来防止多线程访问公共变量,不能及时被其它线程正确访问, 而造成的不同步问题。
比如ThreadA 和ThreadB 同时访问一个 int a = 0; 并且修改,
可能会造成 ThreadA 修改a变量后,ThreadB访问a变量还是原来的值。
因此要加上 volatile int a = 0;
多线程其实是cpu拿出一点资源单独去做另外一些事情,线程会把一些变量放到一个小寄存器中,
这样访问数据的,不能马上更新同步到内存中去。因此加上volatile ,让所有的线程都访问同一个地方,这样数据都会同步。但性能下降了(MS都直接访问内存)。
相关文档:
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
从网上看到一个不错的java文件下载的几种方式文章,拿过来跟大家分享一下:
Java文件下载的几种方式
public HttpServletResponse download(String path, HttpServletResponse response) {
try {
&n ......
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。
一、Java编程入门类
对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这 ......
delphi + java 的分布式应用思考
用delphi做界面层 java业务逻辑层 这样看上去很美吧?
具体的实现
java 做业务逻辑层 应该有多种选择 企业级的有EJB3, 轻量级的有spring
目前在学习ejb3,感觉用来做业务逻辑层真的很不错。spring还没有了解
界面层用delphi,RAD应该是delphi的优势。
关键的问题的如果把 ......