1、1、非阻塞IO1.阻塞与非阻塞(1)阻塞:就是当前的函数要执行的话,需要某些条件,但是没有达到,就被阻塞住,内核挂起,当前进程暂停。CPU被拿去运行别的进程了。比如父进程执行wait这个阻塞函数,等待子进程结束后,去回收子进程剩余的8KB内存资源,如果这个时候子进程没有结..
分类:
其他好文 时间:
2016-11-10 15:00:07
阅读次数:
160
一、概念说明 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的环境给出的答案是不同的。所以先限定一下本文的环境。本文讨论的背景是Linux环境下的network IO 在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述 ...
分类:
编程语言 时间:
2016-10-14 11:52:54
阅读次数:
181
Python I/O模型 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 概念说明 在进行解释之前,首先要说明几个概念: 用户空间和内核空间 进程切换 进程的阻塞 文件描述符 缓存 I/O 用户空间与内核空 ...
分类:
编程语言 时间:
2016-10-14 07:33:55
阅读次数:
167
这几天突然对协程感兴趣,于是自己实现了一个,代码放在github上:https://github.com/adinosaur/Coro 协程是一种用户空间的非抢占式线程,主要用来解决等待大量的IO操作的问题。 协程vs线程 对比使用多线程来解决IO阻塞任务,使用协程的好处是不用加锁,访问共享的数据不 ...
分类:
编程语言 时间:
2016-09-20 16:39:25
阅读次数:
210
注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 本文讨论的背景是Linux环境下的network IO。 一 ...
分类:
系统相关 时间:
2016-09-08 14:45:26
阅读次数:
203
redis作为一个服务,和普通的oracle,mysql服务器运维维护和系统调优是一样的。关注内存,CPU,网络IO,阻塞等。由于不会涉及复杂的SQL业务逻辑,缺少SQL调优这一块。1.通过INFO命令,要清楚了解服务器的现状。参照:http://redisdoc.com/server/info.htmlsectionserver记录了Re..
分类:
其他好文 时间:
2016-09-04 17:53:02
阅读次数:
448
本文为转载,并作了部门调整、修改。 【原文出处:https://segmentfault.com/a/1190000003063859】 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 一 概念说明 在进行 ...
分类:
系统相关 时间:
2016-08-27 23:17:42
阅读次数:
301
注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 本文讨论的背景是Linux环境下的network IO。 一 ...
分类:
系统相关 时间:
2016-08-14 23:44:55
阅读次数:
231
刚开始学习,难免有些疏漏之处,请各位多多指教。 程序亲测可以使用。废话不多说。 网络IO模型分为阻塞IO、非阻塞IO、异步IO、IO复用、信号驱动IO。 阻塞IO: 有数据时,直接读;没有数据时,等待读。 非阻塞IO: 无论内核有没有数据都读。 以下是程序: 1. serevr.c 2. clien ...
分类:
其他好文 时间:
2016-08-12 21:26:21
阅读次数:
151
上一篇《聊聊同步、异步、阻塞与非阻塞》已经通俗的讲解了,要理解同步、异步、阻塞与非阻塞重要的两个概念点了,没有看过的,建议先看这篇博文理解这两个概念点。在认知上,建立统一的模型。这样,大家在继续看本篇时,才不会理解有偏差。 那么,在正式开始讲Linux IO模型前,比如:同步IO和异步IO,阻塞IO ...
分类:
系统相关 时间:
2016-07-29 21:09:53
阅读次数:
326