网络编程的本质是进程间通信
2 通信的基础是IO模型
输入流
文件,Java对象,字符串都可以是数据源
输出流
3 java.io 家族
字符流
字节流
4 设计模式 - 装饰器模式
- 奶茶店里面的装饰器模式(珍珠只是装饰)
Socket也是一种数据源
- Socket是网络通信的端点
Unix中的Socket是什么
◆ Unix系统中一切皆是文件
◆ 文件描述符表是已打开文件的索引
◆ 每个进程都会维护一个文件描述符表
通过socket发送数据
同步/异步/阻塞/非阻塞
- 排列组合
同步
面对面表白女生时为同步,持续性等待!
A线程:
A要去做事情A1,A2, A3。
如果A1正在执行的情况下A2, A3都不能执行,这叫做同步,也叫阻塞。A2必须等A1执
行完毕之后才能执行。
异步
女孩子考虑考虑,下次告诉你
A1正在执行的情况下,A2和A3也可以执行。这叫做异步、非阻塞。
阻塞调用
表白后,茶不思饭不想啥都不干就等待!
非阻塞调用
- 表白后,该干嘛干嘛
等待结果前,调用方的状态
同步阻塞
- 一直等待,不做别的事
同步非阻塞
等待时,还想着自己的bug没解决呢!
异步阻塞
表白后离开,等待手机消息,但茶不思饭不想
异步非阻塞
- 离开后,该干嘛干嘛
复用线程 -线程池
- java提供的线程池
- java提供的创建线程池的方法