synchronized的用法?

yugezi1978 2004-01-30 01:54:40
关于synchronized的用法,还不是十分理解它同步的概念,
哪位大虾能给解释一下,不胜感激!!!
最好配合几个典型例子讲解thanks
...全文
98 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leemaasn 2004-01-30
  • 打赏
  • 举报
回复
如果用synchronized来修饰一个类,就表示对这个类的访问是必须同步式访问。
修饰函数,也类似啊。
kenli 2004-01-30
  • 打赏
  • 举报
回复
synchronized就是说被synchronized key word 修饰的代码断不能同时执行. 执行被修饰的代码断之前会去获取一个Lock,完成后会释放Lock.
Java的同步机制是在语言上的支持, 每个对象都有自己的一把锁.
需要注意的是synchronized背后的东西, 就是这段synchronized是基于那个对象的. 有三种情况:
class SomeClass{
1: 基于Object的instance
synchronized void method1() {}
2: 基于Class的
static synchronized void method2() {}
3: 基于某个对象的
void method3(){
synchronized(someObj){}
}
}

要多花些时间去实践和学习才能搞清楚. 呵呵
wuyue-tiger 2004-01-30
  • 打赏
  • 举报
回复
一般加在静态方法上,这样系统中同一时间仅有一个线程能执行该方法,其它需调用该方法的线程会等前一个线程执行完后才能继续该方法

另一种是对一个对象或变量加 synchronized, 这时系统中同一时间公有一个线程在该段代码中访问该对象。有些线程安全的对象就没有必要再加 synchronized 了

23,407

社区成员

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

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