![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础理论
文章平均质量分 70
iDark_csdn
趁还活着,尽量多学点。
书到用时方恨少啊。
展开
-
什么是线程?什么是进程?
一、进程进程是指在系统中正在运行的一个应用程序,程序一旦运行就是进程。进程是系统进行资源分配的独立实体, 且每个进程拥有独立的地址空间。一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间。进程之间的通信进程间通信 IPC(管道,信号量,共享内存,消息队列)。二、线程线程是进程的一个实体,是进程的一条执行路径。线程是CPU独立运行和独立调度的基本单位。...原创 2018-08-28 11:05:57 · 11073 阅读 · 0 评论 -
同步、异步、阻塞、非阻塞、BIO/NIO/AIO/IO复用模型
一、什么是socket?什么是I/O操作? 我们都知道unix(like)世界里,一切皆文件,而文件是什么呢?文件就是一串二进制流而已,不管socket,还是FIFO、管道、终端,对我们来说,一切都是文件,一切都是流。在信息 交换的过程中,我们都是对这些流进行数据的收发操作,简称为I/O操作(input and output),往流中读出数据,系统调用read,写入数据,系统调用...原创 2018-08-28 14:38:09 · 369 阅读 · 0 评论 -
select、poll、epoll区别
1、select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来...原创 2018-08-28 15:18:25 · 151 阅读 · 0 评论 -
fail_fast和fail_safe的介绍及区别
一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。 原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变modCo...原创 2018-09-06 17:35:03 · 267 阅读 · 0 评论