| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 仿微信开发笔记(第二章) -> 正文阅读 |
|
[Java知识库]仿微信开发笔记(第二章) |
IO流读取入堆,要经历缓冲区,即数据拷贝两次,数据量大会造成资源的浪费 Netty---NIO客户端服务端框架,快速开发基于网络的应用程序,可以简单的开发UDP,TCP;零拷贝 阻塞和非阻塞:线程在访问资源时,依据资源是否准备就绪而引发的处理方式。阻塞指线程持续等待资源处理完毕直到它响应返回结果;而非阻塞指线程直接返回结果,线程不会等待资源处理完毕,而是去请求别的资源。 同步和异步:访问数据的机制,描写的是数据间的关系。如果一个任务必须等待其他任务完成才能开始,则它是同步的,否则是异步。同步指主动请求,并且等IO操作完成后有一个通知返回给线程后,线程才能进行下一个请求;异步指线程请求后可以去处理其他任务发起其他请求,操作完成后有异步通知。 BIO(同步阻塞IO):在读写的时候,线程会被堵塞,并发处理能力低,通信时间长,依赖网速和带宽。是一问一答的模式,后期是创建线程池来处理(伪异步IO) NIO(同步非阻塞IO,New IO):JDK 1.4后引入,它有选择器Selector,缓冲区Buffer,Channal双向通道。选择器是单线程的多路复用器,它可以进行轮询,当客户端通信的时候它先要在那里注册,注册完毕后会有channal,它是双向通道,可进行非阻塞的数据读写 异步阻塞IO: AIO(异步非阻塞IO):可以去干其他事,等待事件回调通知,再处理回调事件。 总结:同步和异步的区别是是否主动询问事件有没有完成,阻塞和非阻塞的区别是是否等待且是否能干事。 BIO----发起请求,一直被阻塞,处理完成后线程才会被释放,销毁。 NIO----Selector? 主动轮询channal是否准备就绪,然后进行响应的请求处理,再进行处理完成 AIO----发起请求,等待通知回调 Netty提供了三种线程模型/Reactor模型 单线程模型:所有IO操作都由同一个NIO线程处理的 多线程模型:一组NIO线程处理IO操作 主从线程模型:一组线程池接受请求,一组线程池处理IO |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 21:07:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |