Java 网络编程实战(二) - Unix的I/O模型解析

网络编程的本质是进程间通信

Java 网络编程实战(二) - Unix的I/O模型解析


2 通信的基础是IO模型

输入流

Java 网络编程实战(二) - Unix的I/O模型解析


文件,Java对象,字符串都可以是数据源

输出流


Java 网络编程实战(二) - Unix的I/O模型解析

3 java.io 家族


Java 网络编程实战(二) - Unix的I/O模型解析

字符流


Java 网络编程实战(二) - Unix的I/O模型解析Java 网络编程实战(二) - Unix的I/O模型解析


字节流


Java 网络编程实战(二) - Unix的I/O模型解析Java 网络编程实战(二) - Unix的I/O模型解析

4 设计模式 - 装饰器模式

Java 网络编程实战(二) - Unix的I/O模型解析


  • 奶茶店里面的装饰器模式(珍珠只是装饰)


Java 网络编程实战(二) - Unix的I/O模型解析

Socket也是一种数据源


Java 网络编程实战(二) - Unix的I/O模型解析

  • Socket是网络通信的端点


Java 网络编程实战(二) - Unix的I/O模型解析

Unix中的Socket是什么

◆ Unix系统中一切皆是文件

◆ 文件描述符表是已打开文件的索引

◆ 每个进程都会维护一个文件描述符表

通过socket发送数据

Java 网络编程实战(二) - Unix的I/O模型解析


同步/异步/阻塞/非阻塞


Java 网络编程实战(二) - Unix的I/O模型解析

  • 排列组合

Java 网络编程实战(二) - Unix的I/O模型解析


同步

面对面表白女生时为同步,持续性等待!

Java 网络编程实战(二) - Unix的I/O模型解析


A线程:

A要去做事情A1,A2, A3。

如果A1正在执行的情况下A2, A3都不能执行,这叫做同步,也叫阻塞。A2必须等A1执

行完毕之后才能执行。

异步

女孩子考虑考虑,下次告诉你

Java 网络编程实战(二) - Unix的I/O模型解析

Java 网络编程实战(二) - Unix的I/O模型解析


A1正在执行的情况下,A2和A3也可以执行。这叫做异步、非阻塞。

阻塞调用

表白后,茶不思饭不想啥都不干就等待!

Java 网络编程实战(二) - Unix的I/O模型解析


非阻塞调用

  • 表白后,该干嘛干嘛

Java 网络编程实战(二) - Unix的I/O模型解析


等待结果前,调用方的状态

同步阻塞

  • 一直等待,不做别的事

Java 网络编程实战(二) - Unix的I/O模型解析

同步非阻塞

等待时,还想着自己的bug没解决呢!

Java 网络编程实战(二) - Unix的I/O模型解析


异步阻塞

表白后离开,等待手机消息,但茶不思饭不想


Java 网络编程实战(二) - Unix的I/O模型解析

异步非阻塞

  • 离开后,该干嘛干嘛

Java 网络编程实战(二) - Unix的I/O模型解析


复用线程 -线程池

Java 网络编程实战(二) - Unix的I/O模型解析


  • java提供的线程池


Java 网络编程实战(二) - Unix的I/O模型解析

  • java提供的创建线程池的方法

Java 网络编程实战(二) - Unix的I/O模型解析

上一篇:ORACLE windows和linux环境下 11.2.0.4安装11.2.0.4.19补丁


下一篇:SpringBoot实战(八)之RabbitMQ