- 博客(5)
- 资源 (1)
- 收藏
- 关注
转载 Daily Blog -- 005.IO模型
当进程发起一个IO操作,会向内核注册一个信号处理函数,随后进程返回不阻塞,当内核数据就绪时返回一个信号给进程,进程便在信号处理函数种调用IO读取数据。当进程发起一个IO操作,进程不阻塞返回,也不返回结果,当内核把整个IO处理完毕,拷贝到用户空间后,通知进程,如果操作成功,进程可以直接获取到数据。异步IO:不导致请求进程阻塞。用户进程发出IO调用后,去获取IO设备数据,内核直接复制到进程,整个过程不导致请求进程阻塞。进程发起系统调用后,进程被阻塞转到内核空间处理,直到整个IO操作处理完毕后返回进程;
2022-10-19 15:57:26
120
原创 Daily Blog -- 004.单例模式
缺陷: 1.未考虑线程安全:当有多个线程同时获取单例时,可能在第一个线程判空实例化单例的同时,第二个线程也判空需要实例化,造成实例化出两个对象;2.会造成内存泄漏:在类中只负责new对象,没有负责delete对象,会导致内存泄漏,当我们自己手动调用delete释放时,不知道从何处释放;懒汉式创建单例方法:先判断该对象是否已经实例化,若已实例化则直接返回该对象,否则实例化对象。饿汉式创建单例方法:在类加载时已经创建好单例对象,获取单例对象时直接返回对象即可。:在类加载时已经创建好单例对象,等待被程序使用。
2022-10-09 22:09:22
168
原创 Daily Blog -- 003.auto、智能指针
auto可以在声明变量时通过赋给变量初始值的类型自动赋予变量类型;在变量声明简单时,不应使用autoauto适用于变量声明时冗长复杂,且变量使用范围之一,使程序更加易读;常用:迭代器:用auto声明的变量必须初始化;auto是一个占位符,并不是一个真正的类型,因此不能用于类型转换或sizeof;
2022-09-25 19:56:41
342
1
原创 Daily Blog -- 002.迭代器失效
2.序列型容器(deque除外)有一个初始的容量capacity()(size()为已使用的容量),当size小于capacity时,pushback不会导致迭代器失效,当容量已满时,再去pushback,容器就会realloc新空间,1.此类容器是连续分配内存的容器,在erase后 删除的元素后的所有元素地址都会发生改变,造成迭代器失效。使用迭代器进行遍历时,当使用迭代器对容器中元素进行插入或删除操作时,会使迭代器iter自增失效。在执行erase之前完成自增,迭代器可以指向别的元素,不会失效。
2022-09-25 02:07:32
128
原创 Daily Blog -- 001.UML类图
UML类图中,常见的关系有:泛化、实现、关联(包括聚合、组合)、依赖。UML体现:带空心菱形的箭头线,菱形指向整体,箭头指向部分。UML体现:带实心菱形的箭头线,菱形指向整体,箭头指向部分。聚合是关联关系的一种,是一种强关联关系。是一种拥有的关系,使一个类知道另一个类的属性和方法。整体和部分的关系,是关联关系的一种,比聚合关系还要强。是类与接口的关系,表示类是所有特征和行为的具体实现。UML体现:带空心箭头的实线,箭头指向父类。UML体现:带空心箭头的虚线,箭头指向接口。单向 箭头指向被拥有的。
2022-09-22 22:25:21
123
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人