• 2022 flag 150编文章 005 java 网络编程


    鸡汤一碗

    当你遇到一件事,感觉无法解决,甚至已经影响到你生活和心情时,何不停下脚步,多些冷静,多些思考,换个角度,换个空间,换种方法,换个思路,也许事情会简单许多。一昧原地踏步、绕圈或太执着,只会让自己陷入痛苦深渊。生命总有挫折,但那不是尽头,只是在提醒你:该转弯了!

    大纲

     1. 阻塞I/O, 非阻塞I/O 

     2. 多路复用I/O模型

     3. Java NIO

    知识点

     1. 阻塞I/O, 非阻塞I/O 

    阻塞IO与非阻塞IO区别请求IO内核是否会立刻返回、用户线程是否会挂起。阻塞:用户线程向内核发出I/O请求,然后用户线程挂起、等待I/O请求结果; 非阻塞:用户线程向内核发出I/O请求,内核立刻返回、用户线程不会挂起。 但是它并不知道这个IO操作是否真的成功了,为了知道IO操作是否成功,一般有两种策略:一是需要应用程序主动地循环地去问kernel(这种方法就是同步非阻塞IO);二是采用I/O通知机制

    阻塞模型图 

     非阻塞模型图 

     2. 多路复用I/O模型

     select 线程轮询多个socket状态,只有socket有IO读写事件,才通知用户线程进行IO读写操作。

     3. Java NIO

     3个关键词: Selector(选择器)、Channel(通道)、Buffer(缓存区)

     Selector 

    Buffer 

    实操

     无

    总结

     无

  • 相关阅读:
    JavaScript中创建对象的几种模式
    Vue学习5:条件渲染
    Vue学习4:class与style绑定
    Vue学习3:计算属性computed与监听器
    Vue学习2:模板语法
    普通递归与优化递归
    new操作符具体干了什么呢?
    各种形式存放token
    用es6的Array.reduce()方法计算一个字符串中每个字符出现的次数
    ES6 对象的解构赋值
  • 原文地址:https://www.cnblogs.com/luoguoqiang1985/p/15845604.html
Copyright © 2020-2023  润新知