黑马程序员技术交流社区

标题: 多线程关于Lock [打印本页]

作者: 孙晓磊    时间: 2015-7-26 22:49
标题: 多线程关于Lock
private Lock lock=new ReentrantLock();
private Condition con=lock.newCondition();
(1)Lock是个接口,ReentrantLock是其一个实现类,是什么意思,ReentrantLock implements Lock?
为啥不写成pricate ReentrantLock ree=new ReenTrantLock();?
(2)第二句是什么意思,返回了第一句创建的newReentrantLock()实例吗?



作者: 真实姓名被注册    时间: 2015-7-26 23:26
private Lock lock=new ReentrantLock();
为了安全或者方便,只调用父类Lock的方法
private Condition con=lock.newCondition();
是创建Condition对象,可以用他来await()和signal()指定线程
作者: rxtm    时间: 2015-7-26 23:32
父类引用指向子类对象,跟直接new差不多
作者: 孙晓磊    时间: 2015-7-26 23:34
真实姓名被注册 发表于 2015-7-26 23:26
private Lock lock=new ReentrantLock();
为了安全或者方便,只调用父类Lock的方法
private Condition con= ...

刚也问了同学了 似乎接口 x=new实现类();是为了强制实现和抽象行为,向上转型是为了创建的实例只全部覆写类里的抽象方法,而没有多的方法,不过第二个lock.这个的意义在于?
作者: 孙晓磊    时间: 2015-7-26 23:35
rxtm 发表于 2015-7-26 23:32
父类引用指向子类对象,跟直接new差不多

之前卡在  父类引用指向子类对象(向上转型)的意义在于。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2