主要描述的是操作系统在收到程序请求IO操作后,如果IO资源没有准备好,该如何响应程序的问题: 前者不响应,直到IO资源准备好以后;后者返回一个标记(好让程序和自己知道以后的数据往哪里通知),当IO资源准备好以后,再用事件机制返回给程序。
Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,个是 JVM 实现的 synchronized,而另一个是 JDK 实现的 ReentrantLock。 1. 锁的实现 synchronized 是 JVM 实现的,而 ReentrantLock 是 JDK 实现的。
FilterInputStream 属于抽象装饰者,装饰者用于装饰组件,为组件提供额外的功能。实例化一个具有缓存功能的字节流对象时,只需要在 FileInputStream 对象上再套一层 BufferedInputStream 对象即可。
Executor 的中断操作。调用 Executor 的 shutdown() 方法会等待线程都执行完毕之后再关闭,但是如果调用的是 shutdownNow() 方法,则相当于调用每个线程的 interrupt() 方法。
从数据传输方式或者说是运输方式角度看,可以将 IO 类分为:字节流,字节流读取单个字节,字符流读取单个字符(一个字符根据编码的不同,对应的字节也不同,如 UTF-8 编码中文汉字是 3 个字节,GBK编码中文汉字是 2 个字节。