摘要: [TOC] 这章主要学习 call 和 ret 两个指令,前者的作用相当于现在高级语言的 方法调用 ,后者相当于高级语言的 方法返回 call指令 call指令分为了 根据偏移量转移 和 根据目的地转移 两种格式 根据偏移量转移 1. call (16位寄存器) 2. call 标号 3. call 阅读全文
posted @ 2019-06-02 17:59 CoDeleven 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 检测点9.1(1) Q: 若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应定义哪些数据? A: 想要让此时的 指向程序的第一条,只要 这个 字单元(因为是word ptr) 保存着 数值0 即可,所以 里面前三个字节保存0即可。 这道题帮我解决了一个认知错误: 以前一 阅读全文
posted @ 2019-06-02 17:29 CoDeleven 阅读(311) 评论(0) 推荐(0) 编辑
摘要: [TOC] 简介 转移指令可以理解为转移程序执行位置的指令。转移指令通常会修改 或( 与`CS`)。 转移指令分类 无条件转移指令(jmp) 其使用方式根据跳转的距离(修改IP的范围)分为三种 1. 段内短转移——跳转的IP范围为 128~127 jmp [short] 标号 jmp (16位reg 阅读全文
posted @ 2019-06-02 16:38 CoDeleven 阅读(1008) 评论(0) 推荐(0) 编辑
摘要: 阻塞队列是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法: 1) 支持阻塞的插入方法:当队列满时,队列会阻塞执行插入的线程 2) 支持阻塞的移除方法:当队列空时,队列会阻塞执行移除的线程 方法总结: | 方法/处理方式 | 抛出异常 | 返回特殊值 | 一直阻塞 | 超时退出 阅读全文
posted @ 2019-06-02 16:19 CoDeleven 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 在Java里,有时候需要延迟初始化来降低初始化类和创建对象的开销。为众人所致的双重检查锁定是常见的延迟初始化技术,但它是一个错误的用法。 比如下面的用法: 假设线程A执行getInstance()初始化对象还未完成时,线程B 判断 instance 变量为 null,也执行一遍Instance的初始 阅读全文
posted @ 2019-06-02 15:43 CoDeleven 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 线程池的优点: 降低资源开销:每次任务到达时不需要重新创建和销毁 提高可管理性:统一对线程进行调优、监控 提高任务响应速度:不需要等待线程创建 线程池创建的各个参数: corePoolSize: 核心线程数。在核心线程数未满时,也优先创建满核心线程数(就算有空余的核心线程) maximumPoolS 阅读全文
posted @ 2019-06-02 15:41 CoDeleven 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 线程池核心Executor Java的线程既是工作单元,也是执行机制。从JDK5开始,把工作单元与执行机制分离开来。工作单元包括Runnable、Callable,而执行机制由Executor提供。 Executor框架结构和流程 主要由以下三部分组成: 任务:Runnable、Callable接口 阅读全文
posted @ 2019-06-02 15:39 CoDeleven 阅读(241) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch 该类主要实现了:让一个线程等待其他线程完成后再执行的功能,好比 。 该类的初始化需要一个整数值count,当每次调用 时Count会递减。直到count降到0时,所有执行 的方法都会返回。 初始化了一个共享变量latch,并赋予count为3 创建一个任务,睡眠1秒假装 阅读全文
posted @ 2019-06-02 15:38 CoDeleven 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 本章是在学习内存模型后,对 Volatile 关键字 有了更加全面得理解,对知识点进行一个分析总结。 volatile的特性 volatile在单个操作上和synchronized一样 可见性:volatile字段的写操作保证对所有线程可见 原子性:volatile字段的单个读写操作是原子性的(比如 阅读全文
posted @ 2019-06-02 15:36 CoDeleven 阅读(385) 评论(0) 推荐(0) 编辑
摘要: synchrnoized的happens before 假设线程A执行init(),线程B执行doTask(),有如下的happens before关系: 根据程序次序规则: ① hb ② ② hb ③ ③ hb ④ ⑤ hb ⑥ ⑥ hb ⑦ ⑦ hb ⑧ 根据监视器规则: ① hb ④ ④ hb 阅读全文
posted @ 2019-06-02 15:34 CoDeleven 阅读(481) 评论(0) 推荐(1) 编辑