synchronized()是否 不同进程间同步某个静态变量?
解决方案 »
- 将数据库内容写出到.txt文件中,为什么我这样写不进去呢,文件总是空??
- java中Frame有类似于delphi中的showMadel()方法吗
- 编译JAVA3中的例程出现com.bruceeckel.simpletest connot be resolved?
- 求助:两个jpanel之间事件响应问题??
- 关于方法返回类型的问题
- Java Mac 加密方法
- 请问各位大虾,用jsf 显示数据时怎么生成带有曲线图或柱状图形的啊???
- 小弟初学java,是鸟中之鸟,不知这个鸟计算器错在哪里?谢谢各位大虾帮助!
- 请看下面代码,我有问题?在线等待。
- 新东西JBuilder4
- 多线程操作
- 考考大家一个单例模式,高手进
作用当然是获得锁,防止多线程同时操作一个方法或对象。
静态变量只是其中一部分,任何线程共享的数据的访问都应该被设计为线程安全的
java虚拟机中"方法区"和"堆"都是线程共享的
而静态变量则是存放在"方法区"中的
对一个对象进行加锁时,对象中的属性也被锁住,
举个例子吧
多个线程同时运行,他们要访问同一个变量t,其初始值为10,他们要做的动作都是将t-10;
第一个线程拿到t的值后,第二个线程也去拿这个t
注意,线程一的动作是t-10,但是由于这个动作还没有做,线程二已经将t的值取走,所以线程二取到的t的值还是10,基于这个原因,才引入了synchronized() 。