搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
花生_TL007
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
云端部署code-server_code server
2
Navicat 连接MySQL时出现错误1251_navicat连接1251
3
arm交叉编译lmbench_lmbench下载
4
Pyecharts配置项_pyecharts 系列配置项
5
关于YOLOv5的学习经验总结(保姆级讲解)
6
如何系统性的学习推荐系统?
7
Web前端三大主流框架是什么?Web前端前景与就业形势分析
8
VSode设置中文字体及问题解决_vscode 中文字体
9
安卓将图片分割或者拉伸或者旋转到指定尺寸并保存到本地_android bitmap 修改图片尺寸 拉伸
10
SLAM公开数据集下载链接(TUM,KITTI,DSO,MONO,EUROC)_the euroc mav 数据集百度云下载
当前位置:
article
> 正文
NIO概念和多线程优化_多线程 和 nio方式下载同一个文件效率比较
作者:花生_TL007 | 2024-02-28 18:06:28
赞
踩
多线程 和 nio方式下载同一个文件效率比较
网络编程
IO模型
同步阻塞IO:客户端发送请求,当服务端在等待某个操作的时候,客户端就会被阻塞,直到服务端完成请求。
同步非阻塞IO:客户端发送请求,当服务端在等待某个操作时,不会阻塞,此时客户端不断轮询去发送请求,直到服务端能够接受然后去执行。但是在执行过程中客户端依旧是阻塞的。并且循环请求消耗很多的资源。
(也是同步)多路复用:客户端在服务端未准备好执行事件的时候先阻塞,当服务端准备好后,才去发送请求。无事件阻塞,有事件执行。客户端在服务端准备期间和执行期间都是堵塞的。
同步:线程自己去获取结果(一个线程)
异步:线程自己不去获取结果,而是由其他线程送结果(至少两个线程)
异步非阻塞:客户端发送请求,通知服务端完成事件后,再通过回调方法来返回结果。
零拷贝优化(并非真正的0拷贝)
所谓的零拷贝是指用户态和内核态之间不存在拷贝。存在用户态到内核态的切换,但是拷贝都是发生在内核态。
问题:JAVA的IO实际不是物理设备级别的读写,而是缓存的复制,底层还是调用操作系统的读写方法,所以JAVA的每次读写都需要进行用户态到内核态,再从内核态到用户态的切换以及缓冲区的拷贝。
优化1:可以通过DirectByteBuffer进行优化。
将堆外内存映射到JVM内存中来直接访问使用
。减少一次数据的拷贝。但是用户态和内核态的切换次数没有减少。
优化2:通过channel调用transferTo/transferFrom方式拷贝数据。底层调用sendFile方法,
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/花生_TL007/article/detail/160757
推荐阅读
article
苹果M1
虚拟机
化
运行
Win11ARM
预览版
_什么芯片能
运行
win11
arm
...
本文转载自IT之家IT之家6 月 29 日消息今天凌晨,微软面向 Dev 开发频道发布了第一个 Windows 11 I...
赞
踩
article
zabbix
的
mysql
键值_
zabbix
所有键值...
Key功能返回值参数描述agent.hostname–agent.pingagent.version
zabbix
age...
赞
踩
article
linux
监控
后台
服务
,
zabbix
自动
监控
Linux
端口
,
自动
和手动
监控
windows
端口
...
1、客户端新建脚本[root@agent01~]#vi/usr/local/
zabbix
_agent/sbin/disc...
赞
踩
article
CDN
与
云
计算技术
的
结合
:专业视角下
的
深度融合...
随着信息技术
的
不断发展,内容分发网络(
CDN
)
与
云
计算技术
作为两种重要
的
互联网基础设施,其
结合
已成为行业发展
的
重要趋势。...
赞
踩
article
python
文字游戏
源代码
_【
Python
】用
Python
实现2048
小游戏
(
源代码
,1.0版本)...
#2048 用
python
实现import randomimport mathimport osglobal score...
赞
踩
article
zabbix
监控
硬件及
服务
(详解)
一
...
一
.items
监控
项(详解)1.简介:
监控
内存包含很多维度,某
一
个维度(信息是数值还是字母,获取数据的间隔。)2.获取监...
赞
踩
article
springboot
配置
redis
+
jedis
,
支持基础
redis
,
并实现
jedis
GEO
地图功...
Springboot配置
redis
+
jedis
,
已在项目中测试并成功运行
,
支持基础
redis
操作
,
并通过
jedis
做了r...
赞
踩
article
计算机
三级网络技术笔记(选择题)_
cisco
的
交换
默认
网球
优先级
为32768这是由
ieee
802
点...
Cable Mo
de
m把用户
计算机
与有线电视同轴电缆连接起来网管可以为loopback分配一个IP地址作为管理地址,掩码...
赞
踩
article
Linux逆向---
ELF
动态
链接
_
linux
逆向
链接
...
ELF
动态
链接
静态
链接
通过将整个库都编译到可执行文件的方式来生成可执行文件,而
动态
链接
则利用共享库来实现可执行文件对共享...
赞
踩
article
Centos 7.9
系统
安装
教程_
centos
-7-
x86
_64-minimal-2009.
iso
...
Centos 7.9
系统
安装
本文对应
系统
镜像版本 CentOS-7-
x86
_64-Minimal-2009.
iso
1、系...
赞
踩
article
zabbix
mon
监控
mysql
_
zabbix
监控
mysql
存活及性能...
Zabbix环境已经部署完成:Zabbix_aget: 安装在/etc/
zabbix
1.开放端口10050firewal...
赞
踩
article
Zabbix
监控
之
监控
项到达阈值报警
解决方案
汇总_
zabbix
调整
cpu
告警阀值...
我们的服务器在添加模板之后,会有很多的
监控
项。当
监控
项到达一定的阈值之后就会触发报警,这里我们来总结一下当服务器出现问题...
赞
踩
article
狂飙
!
Android
14
预览版
来了
!
...
您还在用
Android
几的系统呢,参与投票让更多开发者了解
Android
系统的分布吧
!
狂飙
!
Android
14
预览版
来...
赞
踩
article
翻译:Practical Hidden Voice Attacks against
Speech
a...
原文链接:https://arxiv.org/pdf/1904.05734.pdf 是NDSS-2019 accepte...
赞
踩
article
walden_
peeping
chinese
...
t=open("D:\python\Walden","r").read()t=t.replace(',','').rep...
赞
踩
article
40
个
Python
小游戏
,
上班摸鱼我能玩一天_
python
小游戏
...
40
个
Python
小游戏
,
上班摸鱼我能玩一天_
python
小游戏
python
小游戏
...
赞
踩
article
opencv
+
visual
studio
+
CMake
+
CUDA
配置时出问题_
cmake
error ...
opencv
、
visual
studio
、
CMake
、
CUDA
配置时出问题_
cmake
error at
modules
...
赞
踩
article
ubuntu
搭建
qt
creator
(含
arm
qt
5.15
且下载、
安装
、配置、示例)_
qt
5.15
...
默认没有出现Qt
5.15
版本。
安装
低版本
qt
creator
。2 运行
qt
media视频。_
qt
5.15
.12
arm
...
赞
踩
article
一篇文章教你
使用
Docker
本地
化
部署
Chatgpt
(非
api
,速度非常快!!!)及裸连
GPT
的
方式
...
第一种方法:
使用
Docker
本地
化
部署
第二种方法:不
部署
项目,直接连接_
chatgpt
本地
部署
教程
chatgpt
本地
部署
...
赞
踩
article
ubuntu18
.04
安装
部署
openvion
_
ubuntu18
安装
openvino
2
0
2
1.4.
2
...
Intel® Distribution of OpenVINO™ Toolkithttps://software.int...
赞
踩
相关标签
zabbix的mysql键值
linux 监控后台服务
云计算
python文字游戏源代码
linux
zabbix
java
网络
服务器
运维
ELF
centos
系统安装
zabbix mon监控mysql
android
python
pygame
开发语言
visual studio
opencv
caffe
ubuntu
数据库
docker