- 博客(6)
- 收藏
- 关注
原创 C++11基础:智能指针
智能指针 智能指针是一个类。 在编写程序时,申请的空间在函数结束时忘记释放,造成内存泄漏。 使用智能指针可以很大程度上的避免这个问题,智能指针可以在函数结束时自动释放内存空间,不需要手动释放内存空间。 因为智能指针是一个类,当超出了类的实例对象的作用域时,会自动调用对象的析构函数,析构函数会自动释放资源。 智能指针的种类 C++11目前有三种智能指针 unique_ptr,shared_ptr, weak_ptr auto_ptr已经被C++11弃用。shared_pt是最常用得智能指针。 一 auto_p
2020-10-02 16:01:40 215
原创 设计模式:单例模式
单例模式 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 实现步骤 1 在类的 构造方法定义为私有方法,这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例; 2 在类内 提供一个静态方法,调用该方法时,若存在实例就返回这实例的个引用,若无实例 就 创建该类的实例 并 返回实例的引用。 基础要点 1 全局只有一个实例:要求是静态,并且私有构造(防止用户自己声明并定义实例) 2 线程安全 3 禁止赋值和拷贝 4 用户通过
2020-09-29 16:35:55 85
原创 操作系统:I/O模型
引言 I/O输入/输出(Input/Output)在,操作系统中文件IO和网络IO 是最主要的两种IO形式。本篇将5种IO模型在其他大牛的基础上,加入个人理解进行归纳总结。 IO包括两个部分: 读取通过IO进行读写 和 从内核向用户区拷贝数据。 IO模型主要包括: 阻塞IO,非阻塞IO,多路复用IO,信号驱动IO,异步IO五种模型。 这里插一句,线程所存在的状态有三种: 就绪:线bai程分配了CPU以外的全部资源,du等待获得CPU调度 执行:zhi线程获得CPU,正在执行 阻塞:线程由于发生I/O或者其他
2020-09-26 20:40:04 507
原创 数据库:数据定义语言(DDL)
数据定义语言(DDL)包括库和表的管理 主要语句 创建:creat 修改:alter 删除:drop 一 库的管理 创建、修改、删除 #1 库的创建 create database 库名; CREATE DATABASE if not exists 库名; 如果存在不创建也不报错。 CREATE DATABASE books; #2 库的修改 一般不修改名字,会导致错误。可修改字符集 //RENAME DATABASE books TO 新库名; ALTER DATABASE books CHARAC
2020-09-21 11:15:58 333
原创 操作系统:死锁
一、死锁: 所申请的资源被其他等待进程占有,那么该等待进程有可能再也无法改变状态。即使有可能发生死锁,也不一定发生。 二、死锁产生的必要条件: (1)互斥:一个资源只能被一个进程使用。 (2)占有并且等待:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 (3)非抢占:进程已获得的资源,未使用前,不能抢占。 (4)循环等待:若干进程之间形成了一种头尾相接的循环等待条件。 三、死锁产生的主要原因: (1) 系统资源不足(2)进程运行推进的顺序不合适(3)资源分配不当。 四、死锁预防: 通过限制如何申请资源
2020-09-18 15:41:01 164 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人