我知道是同步,但是是不是意思是:
目前已经执行了某个类的一个synchronized类型的函数,整个程序中,也不会同时执行别的类的有synchronized的函数,因为我在多个不同类访问一个相同变量,我想知道多线程中这样是不是安全的。
目前已经执行了某个类的一个synchronized类型的函数,整个程序中,也不会同时执行别的类的有synchronized的函数,因为我在多个不同类访问一个相同变量,我想知道多线程中这样是不是安全的。
解决方案 »
- B/S C/S
- 求一个算法,给点思路
- 为什么在服务端关闭了相应的连接端口,但其还能调用getInetAddress()
- 类似这样一个c结构,用java改写咋弄?,大写的都是宏定义
- 请教字符串转换的问题
- 类型转换:oxFFFFFFF1怎么转化为十六进制的!
- 请教一个算法问题
- 在运行http://localhost:7001/console/的时候,提示我下载java虚拟机,我如何设置而直接利用jbulider9下的jdk?
- java初学者的问题
- 菜鸟发问:了解java 2D组件的大侠,请进来取分!
- 急,怎么实现在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;
}
因此我认为你的例子是不能保证同步的,要同步就应该如管程模型一样,将对资源的操作放在一个对象中。