社区
Java SE
帖子详情
有关synchronized()中参数用法的问题!!
villagehead
2002-10-29 09:16:46
就是在使一段代码同步时的那个参数。
比如用:
synchronized(this){
//代码
}
是让这些代码在不同的线程里同步执行,
可是synchronized的参数要是个变量呢?
比如:
public void paint(Graphics g){
synchronized(g){
//代码
}
}
这里的synchronized是在保护谁呢?
原来那个this和现在的g在synchronized的参数里都是什么意思呢??
...全文
506
4
打赏
收藏
有关synchronized()中参数用法的问题!!
就是在使一段代码同步时的那个参数。 比如用: synchronized(this){ //代码 } 是让这些代码在不同的线程里同步执行, 可是synchronized的参数要是个变量呢? 比如: public void paint(Graphics g){ synchronized(g){ //代码 } } 这里的synchronized是在保护谁呢? 原来那个this和现在的g在synchronized的参数里都是什么意思呢??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sliant
2002-10-29
打赏
举报
回复
yes, this
我的理解是,以对象 o 代表临界资源,每个 o 就会有一个等待队列,
synchronized ( o ) { ... }
意思是:申请 o ,如果不行就进入 o 的等待队列;系统自动维护 o 的等待队列,在当前 o 被释放时,自动向等待队列发 notify() 消息
synchronized function() {...}
相当于
function() { synchronized(this) {...} }
qxjavajava
2002-10-29
打赏
举报
回复
1 同步一段代码,在这段代码执行的过程中都讲保持着这个对象锁。需要却没有得到这个对象锁的代码无法执行。
那么用synchronized修饰的方法的object是谁呢?
是this吗?-----------也可以理解为this,事实上,在同步方法时,我们不过多的考虑对象锁的问题,因为毕竟是要由对象句柄来调用方法。
villagehead
2002-10-29
打赏
举报
回复
那这个Object o锁的意思是不是说:
碰到这个object的时候就锁住关于这个object的程序代码,
不让别的进程去“碰”
然后去执行它,
等执行完,再去把它打开!??
那么用synchronized修饰的方法的object是谁呢?
是this吗?
qxjavajava
2002-10-29
打赏
举报
回复
synchronized(Object o){} 这是同步一个代码块,这里的Object o 就是我们常说的对象锁。只有得到这个Object o 锁,才可以开始这块同步的代码。当如具体的你还要看书。
只有得到这个Object o 锁,才可以开始这块同步的代码。-------这时关键。
java多线程编程之使用
Synchronized
块同步变量
我们可以通过
synchronized
块来同步特定的静态或非静态方法。要想实现这种需求必须为这些特性的方法定义一个类变量,然后将这些方法的代码用
synchronized
块括起来,并将这个类变量作为
参数
传入
synchronized
块
解决线程安全
问题
方法
解决多线程导致的线程安全
问题
: 1:同步代码块 格式:
synchronized
(锁对象)... 权限修饰符
synchronized
返回值类型 方法名(
参数
){ 可以会出现线程安全
问题
的代码(访问了共享数据的代码) } 使用步骤: 将访问
synchronized
的
参数
用什么?
很多人用
synchronized
(
参数
)时,随便找个string,hashmap就作为
参数
了。 但是这个
参数
有什么用呢?
synchronized
不就是保证每个进来的线程结束后再放下一个线程进来,对吧? 这个例子保证你能明白 class 人 人...
java
synchronized
参数
_个人对
synchronized
锁的
参数
理解,如果有误望指出
该楼层疑似违规已被系统折叠隐藏此楼查看此楼
synchronized
有几种
用法
给方法加锁也就是在声明方法时加上
synchronized
关键字,这样同时就只能有一个线程访问该方法其次就是代码块,
synchronized
(xx){xxx}但是之前我...
java
synchronized
参数
_
synchronized
参数
的理解
synchronized
是java
中
用...通过一段时间的使用后逐渐发现了一些
synchronized
使用的规律使用
synchronized
是为了防止多个线程同时处理同一个方法,例如在同一时间使用push方法。
问题
在于锁使用的范围,其实这个我也不...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章