黑马程序员技术交流社区
标题:
synchronized
[打印本页]
作者:
che201311
时间:
2013-11-22 23:40
标题:
synchronized
synchronized(this)是对当前实例对象加锁么,主要是区分不清synchronized(this)和public synchronized void 方法名(){}两种用法的不同,如果有线程是wait状态,在这两种情况下调用notify 唤醒的是哪些线程。。。 也许我表达的不清楚,初学菜鸟,求指导啊。。
作者:
樊志伟
时间:
2013-11-23 01:55
synchronized(this)并不是给当前对象加锁,而是指当一个线程进入同步代码块的时候,其他线程就无法进入该同步代码块,形象的说法就是如同一个人进了厕所之后锁了厕所门,以防止其他人进入厕所。
用synchronized(this)还是public synchronized void 方法名(){}就看你需要同步的代码的情况了,如果某个方法中的代码都需要同步,则用后一种方法,如果某个方法中只有部分代码需要同步,那么用同步代码块,即前一种方式就行。
另外:同步代码块的锁可以是任意的对象,非静态同步函数的锁是this,静态同步函数的锁是字节码文件对象,即 类名.class。
作者:
樊志伟
时间:
2013-11-23 01:58
你的最后一问,我没怎么理解。抱歉
作者:
che201311
时间:
2013-11-23 10:33
解决了 谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2