摘自http://bbs.csdn.net/topics/390216019 #1#3楼xiars123
很多人用synchronized(参数)时,随便找个string,hashmap就作为参数了。关键这个参数是怎么用?
同一时间只能有一个线程可以访问synchronized块内的内容,本质是一把锁,(参数)规定了锁的类型,可以是对象或者类的锁,说白了这个参数决定的是这把锁的作用范围。
例如:
class 人人 你 = new 人();人 我 = new 人();如果是synchronized(你){吃饭();}那么说明你只能一顿一顿吃,不能同时(多线程)吃好几顿饭;如果是synchronized(人.class){吃饭();}那么只要我在吃饭,你就不能吃饭,得等我吃完!
新闻热点
疑难解答