JDK源码解析 Runable是一个典型命令模式,Runnable担当命令的角色,Thread充当的是调用者,start方法就是其执行方法
JDK源码解析
Runnable是一个典型命令模式,
Runnable担当命令的角色,Thread充当的是调用者,start方法就是其执行方法
/命令接口(抽象命令角色)
public interface Runnable {public abstract void run();
}
//调用者
public class Thread implements Runnable {private Runnable target;public synchronized void start() {if (threadStatus != 0)throw new IllegalThreadStateException();
group.add(this);
boolean started = false;try {start0();started = true;} finally {try {if (!started) {group.threadStartFailed(this);}} catch (Throwable ignore) {}}}private native void start0();
}
会调用一个native方法start0(),调用系统方法,开启一个线程。
而接收者是对程序员开放的,可以自己定义接收者。
/*** jdk Runnable 命令模式* TurnOffThread : 属于具体*/
public class TurnOffThread implements Runnable{private Receiver receiver;public TurnOffThread(Receiver receiver) {this.receiver = receiver;}public void run() {receiver.turnOFF();}
}
*** 测试类*/
public class Demo {public static void main(String[] args) {Receiver receiver = new Receiver();TurnOffThread turnOffThread = new TurnOffThread(receiver);Thread thread = new Thread(turnOffThread);thread.start();}
}
JDK源码解析 Runable是一个典型命令模式,Runnable担当命令的角色,Thread充当的是调用者,start方法就是其执行方法相关推荐
- JDK源码解析 迭代器模式在JAVA的很多集合类中被广泛应用,接下来看看JAVA源码中是如何使用迭代器模式的。
JDK源码解析 迭代器模式在JAVA的很多集合类中被广泛应用,接下来看看JAVA源码中是如何使用迭代器模式的. 看完这段代码是不是很熟悉,与我们上面代码基本类似.单列集合都使用到了迭代器,我们以Arr ...
- JDK源码解析 Comparator 中的策略模式
JDK源码解析 Comparator 中的策略模式.在Arrays类中有一个 sort() 方法,如下: public class Arrays{public static <T> voi ...
- JDK源码解析 InputStream类就使用了模板方法模式
JDK源码解析 InputStream类就使用了模板方法模式. 在InputStream类中定义了多个 read() 方法,如下: public abstract class InputStream ...
- JDK源码解析 Integer类使用了享元模式
JDK源码解析 Integer类使用了享元模式. 我们先看下面的例子: public class Demo {public static void main(String[] args) {Integ ...
- JDK源码解析 —— IO流中的包装类使用到了装饰者模式
JDK源码解析 IO流中的包装类使用到了装饰者模式. BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter ...
- BigInteger类实例的构造过程——JDK源码解析
最近看了下JDK1.6版本的BigInteger类,仔细研究了下大整数实例的构造过程,现在把自己的所得所想分享给大家. 首先,为什么需要大整数类?简单的说就是因为内部的数据类型能表示的最大数是64位长 ...
- JDK源码解析之Java.util.Collections
java.util.Collections 是一个包装类.它包含有各种有关集合操作的静态多态方法.此类不能实例化,就像一个工具类,服务于Java的Collection框架. 一.源码解析 1.不可实例 ...
- JDK源码解析之Java.util.Collection
Collection是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素,JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现 一.源码解析 1 ...
- JDK源码解析--Object类
作为一名java开发,肯定会知道object类,object类是所有类的基类,当一个类没有直接继承任何类时,默认继承object类,所以也被称之为"上帝类". 目录 一.继承Obj ...
最新文章
- 理解Linux下的SELinux(MAC)
- Linux——如何打开或者安装g++
- day32 管道, 数据共享, 进程池, 回调函数
- 疑似华为Mate 30系列通过3C认证:标配40W快充
- linux5 yum安装,(5)Linux_软件管理_yum安装本地软件
- CCTV 报道深圳高交会上的物联网城市应急感知网络
- java电池soc算法实现,BMS算法设计之电池SOC介绍(一)
- 特殊的forward_list操作
- 委托、Lambda表达式、事件系列06,使用Action实现观察者模式,体验委托和事件的区别...
- Java 接口和抽象类的异同点
- android+蓝牙手柄+驱动+win10,jetion手柄驱动万能版
- Vue 使用Echarts
- 数字化时代,如何赋能人才
- qq微信电脑客户端 for mac v1.0.0.6 官方版
- 图卷积神经网络代码讲解,卷积神经网络python实例
- php euc-cn,php配置中文解说
- sql语句分类(附mysql实操语句)
- NodeJs C++ addon(插件nan方式)
- GDDR6X和GDDR6差距对比 GDDR6X和GDDR6区别
- vue项目storage本地存储