多道技术 多道技术是基于单核背景下产生的 cpu 执行过程(单核): 单道(串行): ? cpu 同一时间只能执行一个任务,这个任务不结束,不能执行其他任务 多道技术: ? cpu 在执行a任务时,a任务发生了 IO 操作或者是执行时间过长时,此时 cpu 可以将 a(保存状态)然后再切换去执行b任 ...
分类:
其他好文 时间:
2020-04-23 00:58:50
阅读次数:
85
如果你想了解异步编程,那么必然会涉及出许多相关概念。 堵塞/非堵塞 同步/异步 多进程/多线程/协程 为什么我要学习这个话,因为我想搞懂异步框架和异步接口的调用。所以,我的学习路线是这样的: 1.python异步编程 2.python Web异步框架(tornado/sanic) 3.异步接口调用( ...
分类:
编程语言 时间:
2020-04-22 22:54:38
阅读次数:
76
c++ fstream中seekg()和seekp()的用法 先说一下C语言中fseek()的功能: 函数原型:int fseek(FILE *fp, LONG offset, int origin) 参数含义:fp 文件指针 offset 相对于origin规定的偏移位置量 origin 指针移动 ...
分类:
编程语言 时间:
2020-04-21 15:09:56
阅读次数:
75
[TOC] 一 、IO操作本质 数据复制的过程中不会消耗CPU 二、 IO模型 1. BIO – 阻塞模式I/O 用户进程从发起请求,到最终拿到数据前,一直挂起等待; 数据会由用户进程完成拷贝 2. NIO – 非阻塞模式I/O 用户进程发起请求,如果数据没有准备好,那么立刻告知用户进程未准备好;此 ...
分类:
其他好文 时间:
2020-04-14 21:05:27
阅读次数:
129
直接参考以下实例,采用协程访问三个网站 由于IO操作非常耗时,程序经常会处于等待状态 比如请求多个网页有时候需要等待,gevent可以自动切换协程 遇到阻塞自动切换协程,程序启动时执行monkey.patch_all()解决 # 由于IO操作非常耗时,程序经常会处于等待状态 # 比如请求多个网页有时 ...
分类:
编程语言 时间:
2020-04-12 22:33:34
阅读次数:
106
我们通过一个简单的Netty代码了解到了Netty中的核心组件,这一篇我们将围绕核心组件中的Channel来展开学习。 Channel的简介 Channel代表着与网络套接字或者能够进行IO操作(read、write、connect或者bind)的组件的联系,一个Channel向用户提供了如下内容: ...
分类:
Web程序 时间:
2020-04-11 09:49:28
阅读次数:
78
上一篇我们通过一个简单的Netty代码了解到了Netty中的核心组件,这一篇我们将围绕核心组件中的Channel来展开学习。 Channel的简介 Channel代表着与网络套接字或者能够进行IO操作(read、write、connect或者bind)的组件的联系,一个Channel向用户提供了如下 ...
分类:
Web程序 时间:
2020-04-10 22:50:49
阅读次数:
162
IO 阻塞IO 特点 每个请求开启一个线程 线程开启,如果当前线程没有数据可读,线程阻塞在read NIO 同步阻塞IO 特点 一个线程并发处理多个写读 空闲线程处理其他通道IO操作 AIO NIO2,异步阻塞IO。 应用操作之后直接返回,不阻塞,后台处理完,操作系统通知相应线程进行后续操作。AIO ...
分类:
其他好文 时间:
2020-04-07 22:35:58
阅读次数:
95
IO操作不外乎读和写,但是不同场景对读写有不同的需求,例如网络中同时监控多个文件句柄,例如关键数据希望一路刷到存储设备而不是扔到cache就返回。怎么读,怎么写,等不等结果返回,是否等获取到数据才发返回,组成了不同的IO模型,分别适用于不同的场景。 ...
分类:
系统相关 时间:
2020-04-07 12:39:42
阅读次数:
72
一,五种IO模型: 一个IO操作可以分为两个步骤:发起IO请求和实际的IO操作例如:1、操作系统的一次写操作分为两步:第一步,将数据从用户空间拷贝到系统空间;第二步,从系统空间往网卡写。2、一次读操作也分为两步:第一步,将数据从网卡拷贝到系统空间;第二步,将数据从系统空间拷贝到用户空间。 阻塞IO和 ...
分类:
其他好文 时间:
2020-04-06 17:35:20
阅读次数:
77