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

举报
JavaEdge 发表于 2021/06/04 01:56:35 2021/06/04
【摘要】 网络编程的本质是进程间通信 2 通信的基础是IO模型 输入流 文件,Java对象,字符串都可以是数据源 输出流 3 java.io 家族 字符流 字节流 4 设计模式 - 装饰器模式 奶茶店里面的装饰器模式(珍珠只是装饰) Socket也是一种数据源 Socket是网络通信的端点 Unix中的Socket是什么 ...

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

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提供的创建线程池的方法

文章来源: javaedge.blog.csdn.net,作者:JavaEdge.,版权归原作者所有,如需转载,请联系作者。

原文链接:javaedge.blog.csdn.net/article/details/103115049

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。