NioEventLoop 的实例化过程
先简单回顾一下EventLoop 实例化的运行时序图:
从上图可以看到, SingleThreadEventExecutor 有一个名为thread 的Thread 类型字段, 这个字段就是与SingleThreadEventExecutor 关联的本地线程。我们看看thread 在哪里被赋值的:
private void doStartThread() {assert thread == null;executor.execute(new Runnable() {@Overridepublic void run() {thread = Thread.currentThread();boolean success = false;updateLastExecutionTime();try {SingleThreadEventExecutor.this.run();success = true;} catch (Throwable t) {logger.warn("Unexpected exception from an event executor: ", t);} finally {// 此处省略清理代码}}});
}
之前的章节我们分析过,SingleThreadEventExecutor 启动时会调用doStartThread()方法,然后调用executor.execute()方法,将当前线程赋值给thread。在这个线程中所做的事情主要就是调用SingleThreadEventExecutor.this.run()方法,而因为NioEventLoop 实现了这个方法,因此根据多态性,其实调用的是NioEventLoop.run()方法。
NioEventLoop 的实例化过程相关推荐
- Angular单元测试ComponentFixture的实例化过程明细
从angular core里导入单元测试需要的库文件: import { async, ComponentFixture, TestBed } from '@angular/core/testing' ...
- java构造方法和实例化,10. JavaSE-子类实例化过程 构造方法间调用
子类的实例化过程: 子类中所有的构造函数默认都会访问父类中空参数的构造函数. class Parent { Parent(){ System.out.println("parent clas ...
- python类实例化_python基础8之类的实例化过程剖析
一.概述 之前我们说关于python中的类,都一脸懵逼,都想说,类这么牛逼到底是什么,什么才是类?下面我们就来讲讲,什么是类?它具有哪些特性. 二.类的语法 2.1 语法 class dog(obje ...
- java基础代码实例_基础篇:详解JAVA对象实例化过程
1 对象的实例化过程 对象的实例化过程是分成两部分:类的加载初始化,对象的初始化 要创建类的对象实例需要先加载并初始化该类,main方法所在的类需要先加载和初始化 类初始化就是执行方法,对象实例化是执 ...
- Java类初始化及实例化过程
类的初始化过程 1).具体操作 ①静态成员变量的显式赋值代码 ②执行静态代码块 2).实质 编译器将这两部分代码在.class字节码文件中合为一个名<clinit>()的初始化方法 3). ...
- java中子类实例化过程中的内存分配
知识点: 子类继承父类之后,实例化子类时,内存中子类是如何分配内存的呢? 下面,自己会结合一个例子,解释一下,一个子类实例化过程中,内存是如何分配的 参考博客:http://www.cnblogs.c ...
- python 实例化过程_python实例化对象的具体方法
python中同样使用关键字class创建一个类,类名称第一个字母大写,可以带括号也可以不带括号:python中实例化类不需要使用关键字new(也没有这个关键字),类的实例化类似函数调用方式: # c ...
- 【Spring】Bean的实例化过程
创建Bean的入口:org.springframework.beans.factory.support.DefaultListableBeanFactory#preInstantiateSinglet ...
- 深入理解Java虚拟机之Java类加载机制,Java类实例化过程详解。
目录 Java类加载机制 类加载过程 加载(Loading) 连接(Linking) 初始化(Initialzation) 使用(Useing) 卸载(Unloading) 引言 什么情况下开始类加载 ...
最新文章
- 摘录理解LDAP与LDAP注入
- CGAL window 10安装、Demo使用步骤以及问题解决记录
- Linux ss命令 报错,ECS Linux中ss命令显示连接状态的使用说明
- 小米手机卡顿如何解决
- 小菜编程成长记(一 面试受挫——代码无错就是好?)
- Centos-7修改yum源为国内的yum源
- day6 字典的介绍
- Unity 实现人物移动
- 蓝牙加密方案,蓝牙方案,蓝牙usbkey,蓝牙key,蓝牙U盾,蓝牙智能卡(公交卡等CPU卡),蓝牙身份认证产品分享,蓝牙公交卡,蓝牙会员卡
- 服务器运行cad慢,CAD绘图唯快不破(CAD运行用加速技巧)
- UG二次开发GRIP过滤
- 华为OJ——将真分数分解为埃及分数
- 2019.4.3个人赛
- 阿里云云服务器ECS
- Android解压apk包
- 《缠中说禅108课》84:本 ID 理论一些必须注意的问题
- Windows安装pyserial
- 消息中间件RocketMQ
- 如何让快速在CAD图纸中标注文字
- 常见的机器学习数据挖掘知识点之Basis