摘自http://bbs.youkuaiyun.com/topics/390216019 #1#3楼xiars123
很多人用synchronized(参数)时,随便找个string,hashmap就作为参数了。关键这个参数是怎么用?
同一时间只能有一个线程可以访问synchronized块内的内容,本质是一把锁,(参数)规定了锁的类型,可以是对象或者类的锁,说白了这个参数决定的是这把锁的作用范围。
例如:
class 人
人 你 = new 人();
人 我 = new 人();
如果是
synchronized( 你 ){
吃饭();
}
那么说明你只能一顿一顿吃,不能同时(多线程)吃好几顿饭;
如果是
synchronized( 人.class ){
吃饭();
}
那么只要我在吃饭,你就不能吃饭,得等我吃完!
本文解析了Java中synchronized关键字的使用方法,特别是如何通过指定不同的锁对象来控制并发访问的范围。介绍了使用对象实例和类作为锁的区别,帮助理解同步机制。
1426

被折叠的 条评论
为什么被折叠?



