面试珠玑
文章平均质量分 68
sinat_35297665
这个作者很懒,什么都没留下…
展开
-
【Linux基础】Linux的5种IO模型详解
引入为了更好的理解5种IO模型的区别,在介绍IO模型之前,我先介绍几个概念1.进程的切换(1)定义为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行。即从用户态(较低的3G字节)切换到内核态(最高的1G字节),非常消耗系统资源。(2)过程保存处理机上下文,包括程序计数器和其他寄存器。 更新PCB信息。 把进程的PCB移入相应的队...转载 2018-07-23 17:11:48 · 242 阅读 · 0 评论 -
聊聊Linux 五种IO模型
一篇《聊聊同步、异步、阻塞与非阻塞》已经通俗的讲解了,要理解同步、异步、阻塞与非阻塞重要的两个概念点了,没有看过的,建议先看这篇博文理解这两个概念点。在认知上,建立统一的模型。这样,大家在继续看本篇时,才不会理解有偏差。那么,在正式开始讲Linux IO模型前,比如:同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本...转载 2018-07-23 17:12:32 · 177 阅读 · 0 评论 -
聊聊同步、异步、阻塞与非阻塞
近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同步、异步、阻塞、非阻塞的概念其实也并不难以理解,在此写下此文,欢迎拍砖,希望多多交流。1 同步与异...转载 2018-07-23 17:13:28 · 237 阅读 · 0 评论 -
epoll 水平触发与边缘触发
https://blog.csdn.net/lihao21/article/details/67631516?ref=myreadepoll也是实现I/O多路复用的一种方法,为了深入了解epoll的原理,我们先来看下epoll水平触发(level trigger,LT,LT为epoll的默认工作模式)与边缘触发(edge trigger,ET)两种工作模式。使用脉冲信号来解释LT和ET可能...转载 2018-07-23 18:12:02 · 167 阅读 · 0 评论 -
C++空类的大小
https://blog.csdn.net/lihao21/article/details/47973609本文中所说是C++的空类是指这个类不带任何数据,即类中没有非静态(non-static)数据成员变量,没有虚函数(virtual function),也没有虚基类(virtual base class)。 直观地看,空类对象不使用任何空间,因为没有任何隶属对象的数据需要存储。然而,C+...转载 2018-07-23 18:53:30 · 303 阅读 · 0 评论 -
Linux探秘之用户态与内核态
https://www.cnblogs.com/bakari/p/5520860.html一、 Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU...转载 2018-07-23 19:32:38 · 260 阅读 · 0 评论 -
非常精简的Linux线程池实现(一)——使用互斥锁和条件变量
https://blog.csdn.net/kxcfzyk/article/details/31719687线程池的含义跟它的名字一样,就是一个由许多线程组成的池子。有了线程池,在程序中使用多线程变得简单。我们不用再自己去操心线程的创建、撤销、管理问题,有什么要消耗大量CPU时间的任务通通直接扔到线程池里就好了,然后我们的主程序(主线程)可以继续干自己的事去,线程池里面的线程会自动去执行这...转载 2018-07-24 00:29:13 · 281 阅读 · 0 评论