java接口与多线程的问题

public class ThreadPool {
Lock lock = new ReentrantLock();//为什么要用这种形式
ReentrantLock ren=new ReentrantLock();//这样写有什么不一样吗?
}

3个回答

 Lock lock = new ReentrantLock();//为什么要用这种形式
ReentrantLock ren=new ReentrantLock();//这样写有什么不一样吗?

在你这里可能不一样,,

假如入又有一个实现类,, ReentrantLock2,,,

Lock lock,,声明的还可以调用,,,
ReentrantLock ren,,这个就需要换很多了,,

依赖倒置原则

qq_32012879
ikonon 抱歉过这么久才采纳,之前我21点发的问题,被吞了,就去其他网站提问了。。
接近 3 年之前 回复

这里就涉及到另一个问题 为什么会有接口这种数据结构
1.定义一个公共的结构 一种数据标准
2.间接的实现多继承

回到你这个问题 就是lock的实现类可以是ReentrantLock也可以是Lock接口的其他实现类

ReentrantLock 是Lock的子类,第一种用法是多态的方式,一般用基类指针具体的子类,这样在函数参数的时候,可以用基类类型做参数等。
可以更灵活,当以后你想换另一种锁类型的时候, 只需要修改

 Lock lock = new ReadWriteLock();
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐