前言 这里的中断和异常指的是处理机的中断和异常,处理机可以理解为cpu。 正文 中断是怎么产生的呢? 是因为操作系统的诞生,引入了中断机制,用来实现多道程序的并发。 简单点说就是这样子的,以前是一道一道程序执行,现在多道程序要想并发执行,其中一种方式就是一个程序运行一下子,然后中断,下一个程序运行一 ...
分类:
其他好文 时间:
2020-08-18 13:26:27
阅读次数:
49
前提 最近有点懒散,没什么比较有深度的产出。刚好想重新研读一下JUC线程池的源码实现,在此之前先深入了解一下Java中的线程实现,包括线程的生命周期、状态切换以及线程的上下文切换等等。编写本文的时候,使用的JDK版本是11。 Java线程的实现 在JDK1.2之后,Java线程模型已经确定了基于操作 ...
分类:
编程语言 时间:
2020-08-05 14:25:11
阅读次数:
77
首先,简明扼要的表达观点和中心句:native的意思就是通知操作系统,这个函数你必须给我实现,因为我要使用。所以native关键字的函数都是操作系统实现的,java只能调用。JNI:java native interface ...
分类:
编程语言 时间:
2020-05-14 15:10:07
阅读次数:
54
同步IO 进程A发起一个 IO中断,进入内核态,操作系统通知 进行IO操作 当 操作完成, 发起一个中断通知操作系统已经读取完成 用户态进程A,可以读取数据 异步IO 进程A发起一个 IO中断,可以设置 或者 函数,进入内核态,操作系统通知控制器进行IO 操作 当 操作完成, 发起一个中断通知操作系 ...
分类:
其他好文 时间:
2020-05-08 18:34:11
阅读次数:
59
操作系统如何加载程序 1.用户编写完代码后,通过编译器将编译为数据段、代码段、堆栈段、bss段,由链接器链接为装入模块 2.用户通知操作系统要运行的程序 3.操作系统根据路径找到对应的程序,检测程序的头部,找到代码段和数据段的位置 4.文件系统根据这些段的位置找到对应的磁盘块 5.操作系统创建进程( ...
分类:
其他好文 时间:
2020-01-04 10:52:35
阅读次数:
102
多线程 判断/干活/通知 1 //操作字节码 2 public class Main 3 { 4 public static void main(String[] args) { 5 Test02 test = new Test02(); 6 7 new Thread(()->{ 8 for(int ...
分类:
其他好文 时间:
2019-12-04 01:26:48
阅读次数:
101
一、I/O模型 1、阻塞式I/O模型: 2、非阻塞式I/O模型 3、I/O复用模型 4、信号驱动式I/O模型 5、异步I/O 信号驱动式I/O和异步I/O之间的区别是:信号驱动式I/O是由内核通知何时可以启动I/O操作,而异步I/O是由内核通知I/O操作何时完成。 二、同步I/O与异步I/O 同步I ...
分类:
其他好文 时间:
2019-07-11 12:40:41
阅读次数:
95
为什么要中断? 操作系统就是一个死循环,它是在不断等待待处理事件的发生,待处理事件正是通过中断的形式通知操作系统的。(操作系统是中断驱动的) CPU对中断的支持? 外部中断,直接有中断代理设备把外部设备的中断信号通过INTR或者NMI引脚输入CPU,CPU根据中断向量号到中断描述符表中找到对应的中断 ...
分类:
其他好文 时间:
2019-05-21 11:16:04
阅读次数:
103
以下均为自己在Android ble开发项目中遇到的问题 1.尽量不要在BluetoothGattCallback里面的回调函数中执行读写通知操作,最多一个,因为例如在onServicesDiscovered回调函数中只会传一个写操作,不管里面有多少个,而通知如setCharacteristicNo ...
分类:
移动开发 时间:
2019-01-04 17:18:40
阅读次数:
223
首先,让我们从HTable.put方法开始。由于这一节有很多方法只是简单的参数传递,我就简单略过,但是,关键的方法我还是会截图讲解,所以希望大家尽可能对照源码进行流程分析。另外,在这一节,我单单介绍put操作在客户端的流程,毕竟,这个内容已经很多了。至于具体服务端的流程,我会在后面的章节中介绍到,欢 ...
分类:
其他好文 时间:
2018-12-04 00:10:45
阅读次数:
195