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

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

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

1.png


2 通信的基础是IO模型

输入流

2.png


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

输出流


3.png

3 java.io 家族


4.png

字符流


5.png6.png


字节流


7.png8.png

4 设计模式 - 装饰器模式

9.png


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


10.png

Socket也是一种数据源


11.png

  • Socket是网络通信的端点


12.png

Unix中的Socket是什么

◆ Unix系统中一切皆是文件

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

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

通过socket发送数据

13.png


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


14.png

  • 排列组合

15.png


同步

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

16.png


A线程:

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

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

行完毕之后才能执行。

异步

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

17.png

18.png


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

阻塞调用

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

19.png


非阻塞调用

  • 表白后,该干嘛干嘛

20.png


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

同步阻塞

  • 一直等待,不做别的事

21.png

同步非阻塞

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

22.png


异步阻塞

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


23.png

异步非阻塞

  • 离开后,该干嘛干嘛

24.png


复用线程 -线程池

25.png


  • java提供的线程池


26.png

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

27.png

目录
相关文章
|
1月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
1月前
|
监控 Linux 测试技术
C++零拷贝网络编程实战:从理论到生产环境的性能优化之路
🌟 蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕C++与零拷贝网络编程,从sendfile到DPDK,实战优化服务器性能,毫秒级响应、CPU降60%。分享架构思维,共探代码星辰大海!
|
1月前
|
Java 大数据 Go
从混沌到秩序:Java共享内存模型如何通过显式约束驯服并发?
并发编程旨在混乱中建立秩序。本文对比Java共享内存模型与Golang消息传递模型,剖析显式同步与隐式因果的哲学差异,揭示happens-before等机制如何保障内存可见性与数据一致性,展现两大范式的深层分野。(238字)
63 4
|
1月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
2月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
396 11
|
3月前
|
缓存 前端开发 Java
Java类加载机制与双亲委派模型
本文深入解析Java类加载机制,涵盖类加载过程、类加载器、双亲委派模型、自定义类加载器及实战应用,帮助开发者理解JVM核心原理与实际运用。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
Java 大视界 -- Java 大数据机器学习模型在自然语言生成中的可控性研究与应用(229)
本文深入探讨Java大数据与机器学习在自然语言生成(NLG)中的可控性研究,分析当前生成模型面临的“失控”挑战,如数据噪声、标注偏差及黑盒模型信任问题,提出Java技术在数据清洗、异构框架融合与生态工具链中的关键作用。通过条件注入、强化学习与模型融合等策略,实现文本生成的精准控制,并结合网易新闻与蚂蚁集团的实战案例,展示Java在提升生成效率与合规性方面的卓越能力,为金融、法律等强监管领域提供技术参考。
|
3月前
|
机器学习/深度学习 算法 Java
Java 大视界 -- Java 大数据机器学习模型在生物信息学基因功能预测中的优化与应用(223)
本文探讨了Java大数据与机器学习模型在生物信息学中基因功能预测的优化与应用。通过高效的数据处理能力和智能算法,提升基因功能预测的准确性与效率,助力医学与农业发展。
|
3月前
|
机器学习/深度学习 搜索推荐 数据可视化
Java 大视界 -- Java 大数据机器学习模型在电商用户流失预测与留存策略制定中的应用(217)
本文探讨 Java 大数据与机器学习在电商用户流失预测与留存策略中的应用。通过构建高精度预测模型与动态分层策略,助力企业提前识别流失用户、精准触达,实现用户留存率与商业价值双提升,为电商应对用户流失提供技术新思路。
|
3月前
|
机器学习/深度学习 存储 分布式计算
Java 大视界 --Java 大数据机器学习模型在金融风险压力测试中的应用与验证(211)
本文探讨了Java大数据与机器学习模型在金融风险压力测试中的创新应用。通过多源数据采集、模型构建与优化,结合随机森林、LSTM等算法,实现信用风险动态评估、市场极端场景模拟与操作风险预警。案例分析展示了花旗银行与蚂蚁集团的智能风控实践,验证了技术在提升风险识别效率与降低金融风险损失方面的显著成效。

推荐镜像

更多
  • DNS