
linux
文章平均质量分 81
shanshanhi
这个作者很懒,什么都没留下…
展开
-
Linux C++的多线程编程
1. 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢转载 2017-03-08 12:34:48 · 300 阅读 · 0 评论 -
select、poll、epoll之间的区别总结[整理]
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用转载 2017-03-08 17:32:46 · 288 阅读 · 0 评论 -
select,poll,epoll比较
select,poll,epoll简介 select select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是: 1 单个进程可监视的fd数量被限制 2 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大 3 对socket进行扫描时是线性扫描转载 2017-03-08 17:36:40 · 263 阅读 · 0 评论 -
linux内核分析——CFS(完全公平调度算法)
1.1 CFS原理 cfs定义了一种新的模型,它给cfs_rq(cfs的run queue)中的每一个进程安排一个虚拟时钟,vruntime。如果一个进程得以执行,随着时间的增长(也就是一个个tick的到来),其vruntime将不断增大。没有得到执行的进程vruntime不变。 而调度器总是选择vruntime跑得最慢的那个进程来执行。这就是所谓的“完全公平”。为了区别不转载 2017-03-06 09:40:51 · 1139 阅读 · 0 评论 -
一步一图一代码,一定要让你真正彻底明白红黑树
一步一图一代码,一定要让你真正彻底明白红黑树 作者:July 二零一一年一月九日 ----------------------------- 本文参考: I、 The Art of Computer Programming Volume I II、 Introduction to Algorithms, Second Edition III、The An转载 2017-03-06 10:24:14 · 619 阅读 · 0 评论