1、什么是磁盘 在讲解磁盘IO前,先简单说下什么是磁盘。磁盘是可以持久化存储的设备,根据存储介质的不同,常
原创 2024-08-15 09:45:13
61阅读
IO包中的类层次关系图:          编编码由来:   一开始计算机在美国使用,用到的字符也只是键盘上的一些符号和少数几个特殊的符号,每个字符都用一个数字来表示,一个字节所能表示的数字范围内足以容纳所有的字符,实际上表示这些字符的数字的字节最高位都是0,也就说说这些数字都在0~127之间,这种字符和数字对应的
原创 2012-06-05 12:00:08
541阅读
IO调度算法经常是文件系统优化的一个重要内容。noop(不干涉算法)noop算法,假设硬盘IO能力是足够的,有一定的IO合并优化,大致按照先来后到的顺序分配IO,适用于SSD,传统硬盘因为存在寻址,在noop算法下,性能会非常差。cfq (完全公平算法)cfq算法,给每个进程一个IO队列,然后轮询各个队列,达到公平的效果。适用于传统硬盘,也是长久以来的默认算法。为减少寻址,该算法尝试给IO排序,极
原创 2016-05-13 12:10:20
3430阅读
Java IO本文记录了在学习Java IO过程中的知识点,用于复习和快速查阅,不够详细的部分可能会在后续补充。什么是流流:内存与存储设备(外存)之间传输数据的通道IO:输入流输出流(如read, write)流分类(按单位):字节流:以字节为单位,可以读写所有数据字符流:以字符为单位,只能读写文本数据流分类(按功能):节点流(底层流):具有实际传输数据的读写功能过滤流:在节点流的基础之上增强功能
转载 2021-04-27 20:46:35
125阅读
2评论
一、进程&&线程  1.进程模型    (1) 单进程模型:一个进程响应多个请求容易造成请求的阻塞    (2) 多线程模型:每个进程响应一个请求进程量大,进切换次数过多每个进程地址空间独立,很多空间是重复的数据,所以内存使用率低  2.线程模型(thread)   &nb
原创 精选 2016-05-07 13:36:29
2820阅读
1点赞
目录一、网络IO请求二、一请求一线程三、IO多路复用——select的通俗理解1、select函数2、accpet函数3、recv函数四、IO多路复用——poll五、IO多路复用——epoll1、epoll_create2、epoll_ctl3、epoll_wait4、epoll_event5、边缘触发和水平触发)五、区别对比1、select和poll2、poll和epoll3、select和e
转载 2023-11-30 06:17:07
212阅读
POSIX 同步IO、异步IO、阻塞IO、非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下。 按POSIX的描述似乎把同步和阻塞划等号,异步和非阻塞划等号,但是为什么有的人说同步IO不等于阻塞
转载 2019-02-01 15:12:00
100阅读
2评论
Mysql基本原理和概念一、引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低
转载 2023-07-28 20:01:01
113阅读
当一个网络IO(假设是read)发生时,它会涉及两个系统对象,一个是调用这个IO的进程,另一个是系统内核。当一个read操作发生时,它会经历两个阶段:一、等待数据准备;二、将数据从内核拷贝到进程中。阻塞IO模型在Linux中,默认情况下所有的socket都是阻塞的。阻塞、非阻塞:阻塞和非阻塞的概念描述的是用户线程调用内核IO操作的方式:阻塞是指IO操作需要彻底完成后才会返回用户空间,即:当前线程会
一、Java IO 体系结构图:  Io体系分为字符流和字节流,InputStream 和OutputStream,两个是为字节流设计的,主要用来处理字节或二进制对象,Reader和 Writer.两个是为字符流(一个字符占两个字节)设计的,主要用来处理字符或字符串.  字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。
转载 2023-05-26 16:29:45
181阅读
SpringBoot+WebSocket基于Redis订阅发布实现集群化前面讲了单机版的websocket如何使用发送群聊,那么要是部署多个服务实现集群话怎么实现呢?由于websocket是长连接,session保持在一个server中,所以在不同server在使用websocket推送消息时就需要获取对应的session进行推送,在分布式系统中就无法获取到所有session,这里就需要使用一个中
转载 2023-07-21 21:40:55
113阅读
  我们通常说,Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。  但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。为什么使用单线程?  多线程并发开销大,访问共享资源时,要确保资源的正确性,需要额外
今天总结一下Java I/O文件读写基本类相关知识和概念,对于程序设计者来说,创建一个好的输入/输出系统是一项艰难的任务,其中挑战来源于所有的可能性,不仅存在各种源端与接收端(文件,控制台,网络链接等),而且还需要以各种不同的方式与它们通信(顺序,随机存取,缓冲,二进制,按字符,按行,按字等)。 Java I/O主要包括如下几个层次:1. File(文件特征与管理):用于文件或者目录的描
转载 2023-07-20 22:46:56
29阅读
# Redis及IO多路复用的简述 ## 引言 Redis 是一个高性能的键值数据库,广泛应用于各种场景,尤其是在缓存、消息队列等领域。理解 Redis 的工作原理,特别是其使用的 IO 多路复用机制,对于开发者而言至关重要。在这篇文章中,我们将探讨什么是 IO 多路复用,为什么 Redis 中会用到它,以及如何实现一个简单的示例。 ## 什么是 IO 多路复用? IO 多路复用是一种编程
原创 8月前
31阅读
之前学习过标准IO的基本概念,又接触文件IO。那么,什么是文
原创 2021-07-14 09:21:11
279阅读
Android实现数据存储技术 本文介绍Android中的5种数据存储方式。  数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是:1 使用SharedPreferences存储数据2 文件存储数据3 SQLite数据库存储数据4 使用ContentProvider存储数据5 网络存
目录一、原理二、BIO1、三次握手 2、测试用例2.1、服务端测试代码2.2、客户端代码2.3、开启服务端2.4、启动客户端一、原理IO即Input/Output 输入输出,诺依曼结构将计算机分成5个基础部分:运算器、控制器、存储器、输入、输出。应用程序发起一次IO操作,包含两个阶段:IO调用:应用程序进程向操作系统内核发起调用。IO执行:操作系统内核完成IO操作。IO又分成BIO(阻塞
目录一:IO模型简介1.五种IO Model:二:五种IO模型简介1.阻塞IO2.非阻塞IO3.多路复用IO4.信号驱动IO模型5.异步IO三:5种I/O模型的比较一:IO模型简介IO模型研究的主要是网络IO(linux系统)同步(synchronous) 大部分情况下会采用缩写的形式 sync 异步(asynchronous) async 阻塞(blocking) 非阻塞(no
IO-同步,异步,阻塞,非阻塞1.什么是IO数据在系统内核(kernel)和用户进程之间的传递,称为IO。2.IO操作步骤以read为例,涉及两个系统对象,调用IO的process(or thread),即用户进程;另一个为系统内核(kernel)。当用户进程调用recvfrom操作时,会经历两个阶段1)等待数据准备2)将数据从内核拷贝至进程中3.IO模型根据用户进程在IO操作时的状态,可以分为5
在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样:当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据。对于network io来说,很多时候数据在一开始还没有到达(比如,还没有收到一个完整的UDP包),这个时候kernel就要等待足够的数据到来。1 而在用户进程这边,整个进程会被阻塞。当kernel一直等到数
  • 1
  • 2
  • 3
  • 4
  • 5