如果你用:
class foo {
...
synchronized void methodFoo(){}
...
}
的形式,实际上是用这个对象本身做锁的,如果应用时生成许多,就会有很多不同的锁,如果想所有的对象都用一个锁,可以:public static SomeClass aObj = new SomeClass();在需要同步的地方:
synchronized (aObj) { //语法可能错了,:)
...
}
class foo {
...
synchronized void methodFoo(){}
...
}
的形式,实际上是用这个对象本身做锁的,如果应用时生成许多,就会有很多不同的锁,如果想所有的对象都用一个锁,可以:public static SomeClass aObj = new SomeClass();在需要同步的地方:
synchronized (aObj) { //语法可能错了,:)
...
}
方法内:
synchronized(控制同步对象)
{
}同步一个方法是最坏的打算,因为方法里边可能有其它操作,如:写/读文件你怎么控制?