IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待 ...
分类:
编程语言 时间:
2019-10-23 11:17:19
阅读次数:
85
众所周知Redis是单进程单线程的应用,在如今多核横行的时代,我们不免有疑问,单线程的redis怎么就成了高性能的代表 当有多个线程同时调用redis的时候,那么单线程的redis是怎么处理的呢,这里就不得不说redis内部的IO模型 首先要提到几个概念,阻塞IO,非阻塞IO,同步IO,异步IO,多 ...
分类:
其他好文 时间:
2019-10-22 18:25:23
阅读次数:
83
1.sendall() #将数据一次性发送,即不进行拆包(区别于send()) 2.setblocking(False) #设置accept和recv两个方法的阻塞与非阻塞状态 (非阻塞IO模型解决阻塞IO模型) #参数为False 代表设置为非阻塞状态 #参数为True(或者不写)默认为阻塞状态 ... ...
分类:
其他好文 时间:
2019-10-22 13:13:45
阅读次数:
66
什么是Node.js 百度百科: Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 存在价值: HTTP请求是无状态和一次性的,目前许多网站中需要实时更新,如朋友圈,你的一个朋友发了一条朋友圈,需 ...
分类:
Web程序 时间:
2019-10-21 16:19:58
阅读次数:
94
网络部分 1、tcp/udp区别 2、tcp 三次握手/ connect/ accept 关系, read返回0 3、select/ epoll ET/LT 在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBL ...
分类:
其他好文 时间:
2019-10-20 13:21:12
阅读次数:
77
2019-10-20 关键字:select 与 poll 在 Linux 系统下,IO 总共可以分为以下四种: 1、阻塞 IO; 2、非阻塞 IO; 3、IO多路复用; 允许同时对多个 IO 进行控制。 4、信号驱动 IO; 一种异步通信模型。前面三种 IO 都是同步型的,唯这一种是异步型的。 阻塞 ...
分类:
系统相关 时间:
2019-10-20 11:07:38
阅读次数:
107
Swoole 是为 PHP 开发的生产级异步编程框架。 他是一个纯 C 开发的扩展, 他允许 PHP 开发者在 PHP 中写 高性能,可扩展的并发 TCP, UDP, Unix socket, HTTP, WebSocket 服务, 而不需要拥有太多的非阻塞 I/O 编程和低级别的 Linux 内核 ...
分类:
其他好文 时间:
2019-10-19 15:05:14
阅读次数:
123
Percona XtraBackup工具提供了一种在系统运行时执行MySQL数据热备份的方法。 Percona XtraBackup在事务系统上执行联机非阻塞,紧密压缩,高度安全的完整备份,因此在计划的维护时段内,应用程序仍保持完全可用。 环境准备: master:192.168.0.106:330 ...
分类:
数据库 时间:
2019-10-19 00:13:33
阅读次数:
129
NIO:同步非阻塞IO 来源:BIO是同步阻塞IO操作,当线程在处理任务时,另一方会阻塞着等待该线程的执行完毕,为了提高效率,,JDK1.4后,引入NIO来提升数据的通讯性能 NIO中采用Reactor设计模式,注册的汇集点为Selector,NIO有三个主要组成部分:Channel(通道)、Buf ...
分类:
编程语言 时间:
2019-10-17 01:35:31
阅读次数:
134
我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本节我们就来研究下ConcurrentLinkedQueue是 ...
分类:
其他好文 时间:
2019-10-16 20:14:45
阅读次数:
78