public synchronized void Push(char c)
{
// :-)
}
这里synchronized 同步的是什么?我一直没有搞懂,我知道应该同步共享的变量,可是难以理解,尤其是synchronized(this),这个this是什么?!不会是Class的引用吧!请高手指点一二
{
// :-)
}
这里synchronized 同步的是什么?我一直没有搞懂,我知道应该同步共享的变量,可是难以理解,尤其是synchronized(this),这个this是什么?!不会是Class的引用吧!请高手指点一二
synchronized void Push(char c)
-----------在这里,同步的是方法
其实synchronized(Object o)这是块的同步,只要得到对象o,就可以开始这个代码块,而synchronized(this)是最泛泛得同步,只要有个对象就可以同步,
实际上
public synchronized void Push(char c)
{
// :-)
}
相当于
public void Push(char c)
{
synchronized(this){
// :-)
}
}
我想应该是synchronized(c)比较合理吧?!?!?
如果直接synchronize(this或者obj)就表示多个线程想使用this对象或者obj对象中的方法或者变量,那么同一时刻只能有一个线程能够获得synchronized这个锁,并且进入此对象执行对象中的方法或者改变变量。
如果直接synchronize(this或者obj)就表示多个线程想使用this对象或者obj对象中的方法或者变量,那么同一时刻只能有一个线程能够获得synchronized这个锁,并且进入此对象执行对象中的方法或者改变变量。