我知道是同步,但是是不是意思是:
目前已经执行了某个类的一个synchronized类型的函数,整个程序中,也不会同时执行别的类的有synchronized的函数,因为我在多个不同类访问一个相同变量,我想知道多线程中这样是不是安全的。
目前已经执行了某个类的一个synchronized类型的函数,整个程序中,也不会同时执行别的类的有synchronized的函数,因为我在多个不同类访问一个相同变量,我想知道多线程中这样是不是安全的。
解决方案 »
- 新手自学JAVA,求教叫有效方法,最好能事半功倍(时间不多了啊)
- 用java打印名片形式的卡片,分横版和竖版,一张A4纸上可打印9张,怎么实现
- 关于显示提示信息对话框
- 关于html
- 用JAVA实现得出数组中出现最有效(频率最高)元素的下标
- 急,如何得到Tomcat classes下文件的路径,我有个类(读文件的)在tomcat的classes下的某个包下,还有个text文件保存在classes下,
- 我该怎样做呢?
- 请问怎么安装jython2.1?需要什么环境设置吗?
- 面对挑战,你是勇敢的面对,还是逃避......这一次真的是高分啊!
- 关于Swing
- 急,怎么实现在web里面播放声音?(如果方法好再加分)
- 怎么样让我的程序最小化时进入系统托盘(就像系统时间那个位置)?
举一个例子吧,比如
class A
{
public synchronized void getFunction()
{
....
}
}class B
{
public synchronized void setFunction()
{
....
}
}比如在A中是打开一个文件,读取数据,B类中是打开文件保存数据。
可能会有多个线程不知道什么时候访问A或者B的方法,
这样能保证读文件和写文件不会同时进行吗?
一个synchronized 关键字只对一个特定的对象有用,
Java 在实现的时候每一个对象有一个琐,synchronize是对这个对象的锁操作,在字节码中对应monitorenter,和monitorexit指令。都是针对对象的。
synchronized(this){
this.mi=i;
}
因此我认为你的例子是不能保证同步的,要同步就应该如管程模型一样,将对资源的操作放在一个对象中。