java接口与多线程的问题

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

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

在你这里可能不一样,,

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

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

依赖倒置原则

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

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

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

 Lock lock = new ReadWriteLock();