2 qq 32012879 qq_32012879 于 2017.09.10 21:26 提问

java接口与多线程的问题

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

3个回答

Small_Mouse0
Small_Mouse0   Rxr 2017.09.11 13:09
已采纳
 Lock lock = new ReentrantLock();//为什么要用这种形式
ReentrantLock ren=new ReentrantLock();//这样写有什么不一样吗?

在你这里可能不一样,,

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

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

依赖倒置原则

qq_32012879
qq_32012879 抱歉过这么久才采纳,之前我21点发的问题,被吞了,就去其他网站提问了。。
10 个月之前 回复
zy841958835
zy841958835   Ds   Rxr 2017.09.11 08:59

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

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

oyljerry
oyljerry   Ds   Rxr 2017.09.11 10:55

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

 Lock lock = new ReadWriteLock();
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JAVA高并发多线程必须懂的50个问题
http://www.importnew.com/12773.html ImportNew 首页所有文章资讯Web架构基础技术书籍教程Java小组工具资源 Java线程面试题 Top 50 2014/08/21 | 分类: 基础技术 | 27 条评论 | 标签: 多线程, 面试题 分享到: 692 本文由 ImportNew - 李 广 翻译自 javarevisited。欢迎加入翻译小
Runnable接口实现多线程 (卖票)并发访问
package cm.com.show; /*  * Runnable接口实现多线程 (卖票)并发访问  */ public class RunnableUse1 { public static void main(String[] args) { MyRunnable mr1=new MyRunnable();         new Thread(mr1).start()
java学习笔记之多线程的锁接口Lock
众所周知,多线程的弊端是会使代码受到并发访问的干扰,解决的办法就是同步机制。同步的两种常见形式分别是同步代码块和同步函数,两种形式的锁都是隐式锁,前者持有的锁可以是任意对象,后者持有的锁是默认的this。 从JDK1.5开始,根据面向对象的思想,将锁封装了起来,对外提供Lock接口,并提供了对锁的显式操作。Lock接口的出现比synchronized有更多的操作,是同步的替代。   将锁单独封
java并发与多线程API学习
Executor接口 public interface Executor {      void execute(Runnable command); } Executor接口中之定义了一个方法execute(Runnable command),该方法接收一个Runable实例,它用来执行一个任务,任务即一个实现了Runnable接口的类。     在Jav
多线程解决现实中的抢票问题(初级)
多线程解决现实中的抢票问题 以下为两种解决方式: 1.实现Runnable接口 2.继承自Thread 1.第一种方法(正确)Public class A extends Thread{ Public static int tickets = 100; Public static String str = new String(
JNI 的多线程
之前的博文中讲述了JNI的基础知识: Java 类型和C/C++类型的转换 cygwin + gcc+makeFile入门(三): JNI的编译 这两篇文章讲述了JNI最普遍的两个问题, 环境的建立以及参数的传递.  JNI作为连接Java 和 本地C资源的一个非常重要的技术, 需要被好好重视并掌握, 本章将总结一下JNI涉及的多线程问题, 在此之前, 需要
java 多线程—实现Runable接口
/* 多窗口同时买票。 创建线程的第二种方式:实现Runable接口 步骤: 1、定义类实现Runable接口 2、覆盖Runable接口中的run方法 将线程要运行的代码存放在该run方法中 3、通过Thread类建立线程对象。 4、将Runnable接口的子类对象作为实际参数传给Thread类的构造函数。 为什么要将Runable接口的子对象传递给Thread的构造函数。
JAVA 实现Runnable接口实现多线程
实现Runnable接口实现多线程 如果一个类继承了某一个类时,同时有想要采用多线程的技术。就不能是Thread类生产线程了。因为Java不允许使用多线程,这是嘛。就要用Runnable接口来创建线程了。因为Java不允许多继承,这是就要用Runnble接口来创建线程了。 范例: 1.class B implements Runnble 2.{ 3. public void run()
多线程Thread类和Runnable接口资源共享问题分析
最近在看多线程时,一直迷茫为什么继承Thread类的多线程不能实现资源共享,但是实现Runnable接口的多线程却能实现资源共享,先看一段经典的卖票多线程,将程序修改一下,使运行结果直观。 首先是实现Runnable接口来实现多线程:public class TicketSaleMain implements Runnable{ private int num = 5;
多线程测试接口,可显示多次请求最大时间,最小时间
package com.wpg.yuebo.utils; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import java.util.Date