Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:synchronized 锁顶 的对象只能是一个类。 [Re:develop8]
lisliefor





发贴: 287
积分: 7
于 2006-06-23 09:26 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
develop8 wrote:
void star2(){
synchronized(this){
........
}
} //以上方法被注释
synchronized void star2(){
......
}
}



楼主的例子展示了synchronized的两种用法:前者锁一个类,或者理解为,目的在于锁这个类所包含的数据元素,即锁资源;后者锁的是针对这个资源操作的方法。两种用法,效果殊途同归。
一个浅显的比如:如果我们有若干个线程,都需要针对一个数组String s[]进行插入、读取、修改(读取后,该元素已被拿出来),那么有两个办法:
synchronized(s){
.......
/*这里写针对数组的任何插入、读取、修改的操作。保证当前只有一个线程占用 *该数组资源,即锁住了资源,其他人无法动用。
*/
}
synchronized void Insert(){
.......
/*针对数组的插入操作,保证当前只有一个线程能够调用这个方法。
*注:方法名随便取,具体功能看你代码如何实现
*/
}
synchronized void Update(){
......
/*修改操作,同上。
*
*/
}
synchronized void getElement(){
.....
/*读取操作,同上。
*
*/
}


why edited on 2006-06-23 09:46


话题树型展开
人气 标题 作者 字数 发贴时间
2544 synchronized 锁顶 的对象只能是一个类。 develop8 1846 2006-06-23 07:44
1908 Re:synchronized 锁顶 的对象只能是一个类。 lisliefor 639 2006-06-23 09:26

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923