synchronized相关问题

xxrs736027329 2009-12-12 06:14:31
synchronized修饰Timer.class
synchronized修饰静态方法呢?怎么实现同步
...全文
97 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
godismydaughter 2009-12-13
  • 打赏
  • 举报
回复
是不是静态方法没区别的。
Mybeautiful 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jiangnaisong 的回复:]
引用楼主 xxrs736027329 的回复:
synchronized修饰Timer.class
synchronized修饰静态方法呢?怎么实现同步

在静态方法前加上synchronized,就行了。
[/Quote]
没有试,如果可以的话,它就相当于如下代码:

public void m1{
synchronized (Timer.class) {

}
}


同步一定要有同步锁,对于静态方法,由于其不依赖于对象产生,故如果可以直接加synchronized,我认为其锁很可能是 ClassA.class.
whut0802 2009-12-13
  • 打赏
  • 举报
回复
www.google.com
ouyangyh 2009-12-13
  • 打赏
  • 举报
回复
静态方法,锁定的是那个 class 对象
其实静态方法,就是直接关联 class 对象的
tsinghe 2009-12-13
  • 打赏
  • 举报
回复
也可以通过synchronized{
//要调用的方法语句
}实现的。
xxrs736027329 2009-12-13
  • 打赏
  • 举报
回复
谢谢各位了!
ayay_870621 2009-12-12
  • 打赏
  • 举报
回复
synchronized 这个是同步块方法,把你要同步的代码加在这里面就行了
云上飞翔 2009-12-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 xxrs736027329 的回复:]
synchronized修饰Timer.class
synchronized修饰静态方法呢?怎么实现同步
[/Quote]
在静态方法前加上synchronized,就行了。
苍蝇①号 2009-12-12
  • 打赏
  • 举报
回复
对象锁,具体怎么实现要参考底层操作系统提供的操作原语,比如linux下的信号量、pthread_mutex_t、posix信号量等机制
铑枪--突廆孒 2009-12-12
  • 打赏
  • 举报
回复
实例类同步:在每个实例方法加上同步修饰。

public synchronized void m1() {

}

public synchronized void m2() {

}

该类的对象只能在同一时间调用一个方法。而如果你要该类的所有实例在某一时刻进行同步的话就要使用静态的变量来标记同步锁



private static String s = "";

public void m1() {
synchronized (s) {
// someCOde
}
}

public void m2() {
synchronized (s) {
// someCOde
}
}


静态方法也是这样加同步锁
crazylaa 2009-12-12
  • 打赏
  • 举报
回复

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧