博客园 - The_Ocean
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=71016
2021-06-22T02:29:35Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
feed.cnblogs.com
https://www.cnblogs.com/cuckoo-/p/11444436.html
线程安全 - The_Ocean
线程安全 可重入/不可重入:针对函数,多个执行流中是否可以同时进入函数运行而不出现问题 概念:指多个线程同时处理操作临界资源而不会出现数据二义性,则称是线程安全的 二义性:在线程中是否对临界资源进行了非原子操作 如何实现线程安全: 同步(保证合理):临界资源的合理访问(时序可控) 互斥(保证安全):
2019-09-01T17:05:00Z
2019-09-01T17:05:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】线程安全 可重入/不可重入:针对函数,多个执行流中是否可以同时进入函数运行而不出现问题 概念:指多个线程同时处理操作临界资源而不会出现数据二义性,则称是线程安全的 二义性:在线程中是否对临界资源进行了非原子操作 如何实现线程安全: 同步(保证合理):临界资源的合理访问(时序可控) 互斥(保证安全): <a href="https://www.cnblogs.com/cuckoo-/p/11444436.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11434110.html
C++新特性---智能指针 - The_Ocean
智能指针: 为什么需要智能指针? 1. malloc出来的空间,没有进行释放,存在内存泄漏的问题。 2. 异常安全问题。如果在malloc和free之间如果存在抛异常,那么还是有内存泄漏。这种问题就叫异常安 全。 RAII: 是一种利用对象生命周期来控制程序资源(如内存,文件句柄,网络连接,互斥俩个
2019-08-30T03:32:00Z
2019-08-30T03:32:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】智能指针: 为什么需要智能指针? 1. malloc出来的空间,没有进行释放,存在内存泄漏的问题。 2. 异常安全问题。如果在malloc和free之间如果存在抛异常,那么还是有内存泄漏。这种问题就叫异常安 全。 RAII: 是一种利用对象生命周期来控制程序资源(如内存,文件句柄,网络连接,互斥俩个 <a href="https://www.cnblogs.com/cuckoo-/p/11434110.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11429688.html
C++异常 - The_Ocean
异常处理 概念: 当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误 throw:当问题出现时,程序会抛出一个异常。这是通过使用throw关键字来完成的 catch:在您想要处理问题的地方,通过异常处理程序序捕获异常.catch 关键字用于捕获异常,可以有多 个
2019-08-29T06:52:00Z
2019-08-29T06:52:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】异常处理 概念: 当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误 throw:当问题出现时,程序会抛出一个异常。这是通过使用throw关键字来完成的 catch:在您想要处理问题的地方,通过异常处理程序序捕获异常.catch 关键字用于捕获异常,可以有多 个 <a href="https://www.cnblogs.com/cuckoo-/p/11429688.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11415621.html
C++多态 - The_Ocean
多态 概念:不同的对象去完成时会产生处不同的状态 定义与实现: class Person { public: virtual void BuyTicket() { cout << "买票-全价" << endl; } }; class Student : public Person { public
2019-08-26T15:20:00Z
2019-08-26T15:20:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】多态 概念:不同的对象去完成时会产生处不同的状态 定义与实现: class Person { public: virtual void BuyTicket() { cout << "买票-全价" << endl; } }; class Student : public Person { public <a href="https://www.cnblogs.com/cuckoo-/p/11415621.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11409967.html
线程概念及多线程控制 - The_Ocean
多线程: 多进程:可以同时处理数据(并发/并行) 多线程:可以同时处理数据(并发/并行) 线程概念: 多进程任务处理(使用的是多个虚拟地址空间):将多个任务分解为多个程序(分解到多个进程中完成)。 多线程任务处理:多个pcb 共用同一个虚拟地址空间,同时完成一个代码段中多个不同模块的功能。 进程的理
2019-08-25T15:26:00Z
2019-08-25T15:26:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】多线程: 多进程:可以同时处理数据(并发/并行) 多线程:可以同时处理数据(并发/并行) 线程概念: 多进程任务处理(使用的是多个虚拟地址空间):将多个任务分解为多个程序(分解到多个进程中完成)。 多线程任务处理:多个pcb 共用同一个虚拟地址空间,同时完成一个代码段中多个不同模块的功能。 进程的理 <a href="https://www.cnblogs.com/cuckoo-/p/11409967.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11409952.html
进程信号 - The_Ocean
进程信号: 信号概念:信号就是一个软件中断,通知进程发生了某件事情(打断当前阻塞操作,选择一个合适的时机去处理信号) 功能:通知事件的发生 能够识别信号 信号有不同种类: 查看种类:(共有62种) 命令:kill -l 1号—31号(非实时信号):linux继承unix的信号(非可靠信号,表示信号可
2019-08-25T15:23:00Z
2019-08-25T15:23:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】进程信号: 信号概念:信号就是一个软件中断,通知进程发生了某件事情(打断当前阻塞操作,选择一个合适的时机去处理信号) 功能:通知事件的发生 能够识别信号 信号有不同种类: 查看种类:(共有62种) 命令:kill -l 1号—31号(非实时信号):linux继承unix的信号(非可靠信号,表示信号可 <a href="https://www.cnblogs.com/cuckoo-/p/11409952.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11397193.html
高级IO - The_Ocean
高级IO: 五种IO模型:阻塞IO; 非阻塞IO; 信号驱动IO;异步IO;多路转接IO IO操作分为两个过程:等待/数据拷贝 阻塞IO: 发起IO调用后,若不具备IO条件,则等待IO条件具备,拷贝数据后返回 非阻塞IO: 发起IO调用后,若不具备IO条件,则立即报错返回,若具备IO条件则立即拷贝数
2019-08-22T14:15:00Z
2019-08-22T14:15:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】高级IO: 五种IO模型:阻塞IO; 非阻塞IO; 信号驱动IO;异步IO;多路转接IO IO操作分为两个过程:等待/数据拷贝 阻塞IO: 发起IO调用后,若不具备IO条件,则等待IO条件具备,拷贝数据后返回 非阻塞IO: 发起IO调用后,若不具备IO条件,则立即报错返回,若具备IO条件则立即拷贝数 <a href="https://www.cnblogs.com/cuckoo-/p/11397193.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11381587.html
经典排序算法 - The_Ocean
//1.冒泡排序: #pragma once #include void Swap5(int* a, int* b) { int c = *a; *a = *b; *b = c; } void Print5(int arr[], int size) { for (int i = 0; i arr[i]) { ...
2019-08-20T02:40:00Z
2019-08-20T02:40:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】//1.冒泡排序: #pragma once #include void Swap5(int* a, int* b) { int c = *a; *a = *b; *b = c; } void Print5(int arr[], int size) { for (int i = 0; i arr[i]) { ... <a href="https://www.cnblogs.com/cuckoo-/p/11381587.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11372933.html
浅谈C++继承 - The_Ocean
C++中的继承 1.继承概念及定义: 概念:是面向对象程序设计使代码可以复用的最重要的手段 继承是类设计层次的复用 定义: 父类->基类;子类->派生类 总结: 基类的private成员在派生类中无论以什么方式继承都是不可见的。 基类的private成员在派生类中无论以什么方式继承都是不可见的。 这
2019-08-18T08:47:00Z
2019-08-18T08:47:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】C++中的继承 1.继承概念及定义: 概念:是面向对象程序设计使代码可以复用的最重要的手段 继承是类设计层次的复用 定义: 父类->基类;子类->派生类 总结: 基类的private成员在派生类中无论以什么方式继承都是不可见的。 基类的private成员在派生类中无论以什么方式继承都是不可见的。 这 <a href="https://www.cnblogs.com/cuckoo-/p/11372933.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11105327.html
进程间通信 - The_Ocean
进程间通信 基本介绍: 操作系统提供给用户的几种进程间的通信方式 进程间通信方式是干什么的: 进程间数据传输 数据共享 进程控制 事件通知 正式因为有不同的需求,因此操作系统之间有人提供了多找不同的进程间的通信方式: 续继承与unix而来的管道(匿名管道/命名管道) 共享内存 消息队列 信号量 为什
2019-08-16T15:17:00Z
2019-08-16T15:17:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】进程间通信 基本介绍: 操作系统提供给用户的几种进程间的通信方式 进程间通信方式是干什么的: 进程间数据传输 数据共享 进程控制 事件通知 正式因为有不同的需求,因此操作系统之间有人提供了多找不同的进程间的通信方式: 续继承与unix而来的管道(匿名管道/命名管道) 共享内存 消息队列 信号量 为什 <a href="https://www.cnblogs.com/cuckoo-/p/11105327.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11361175.html
网络 - The_Ocean
网络: 基础概念: 局域网/城域网/广域网/互联网/因特网 ip地址:在网络中唯一表示一台主机 port端口:在一台主机上表示进程 协议:通信双方的约定 网络协议:网络通信唤醒中数据的约定格式 通信协议:网络互联的前提 协议分层:就是一种协议封装,便于使用 对服务,接口,协议进行明确划分;形成标准实
2019-08-15T15:10:00Z
2019-08-15T15:10:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】网络: 基础概念: 局域网/城域网/广域网/互联网/因特网 ip地址:在网络中唯一表示一台主机 port端口:在一台主机上表示进程 协议:通信双方的约定 网络协议:网络通信唤醒中数据的约定格式 通信协议:网络互联的前提 协议分层:就是一种协议封装,便于使用 对服务,接口,协议进行明确划分;形成标准实 <a href="https://www.cnblogs.com/cuckoo-/p/11361175.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11287182.html
单列模式(饿汉模式和懒汉模式) - The_Ocean
设计模式: 设计模式是一套被反复使用,多数人知晓的,经过分类的,代码设计经验的总结。 目的:为了代码可重用性,让代码更容易被他理解,保证代码可靠性。 单列模式:一个类只能创建一个对象,即单列模式,该模式可以保证系统中该类只有一个实例,并提供一个访问他的全局访问点,该实例被所有程序模块共享。 比如:在
2019-08-02T02:43:00Z
2019-08-02T02:43:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】设计模式: 设计模式是一套被反复使用,多数人知晓的,经过分类的,代码设计经验的总结。 目的:为了代码可重用性,让代码更容易被他理解,保证代码可靠性。 单列模式:一个类只能创建一个对象,即单列模式,该模式可以保证系统中该类只有一个实例,并提供一个访问他的全局访问点,该实例被所有程序模块共享。 比如:在 <a href="https://www.cnblogs.com/cuckoo-/p/11287182.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11277056.html
C++动态内存管理 - The_Ocean
1. C/C++内存分布 数据段:全局变量;静态变量; 代码段:只读常量;可执行代码; 栈:函数体内变量;数组; 堆:malloc; 2. C语言中动态内存管理方式 3. C++中动态内存管理 使用关键字:new/delete操作内置类型;自定义类型 注意:申请和释放单个元素的空间,使用new和de
2019-08-01T07:04:00Z
2019-08-01T07:04:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】1. C/C++内存分布 数据段:全局变量;静态变量; 代码段:只读常量;可执行代码; 栈:函数体内变量;数组; 堆:malloc; 2. C语言中动态内存管理方式 3. C++中动态内存管理 使用关键字:new/delete操作内置类型;自定义类型 注意:申请和释放单个元素的空间,使用new和de <a href="https://www.cnblogs.com/cuckoo-/p/11277056.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11062856.html
基础I/O - The_Ocean
基础IO: c库文件IO操作接口:(详细查看c语言中的文件操作函数总结:https://www.cnblogs.com/cuckoo-/p/10560640.html) fopen 打开文件 fclose 关闭文件 fread 读取文件 fwrite 写入文件 fseek 移动跳转当前读取/写入位置
2019-06-24T13:50:00Z
2019-06-24T13:50:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】基础IO: c库文件IO操作接口:(详细查看c语言中的文件操作函数总结:https://www.cnblogs.com/cuckoo-/p/10560640.html) fopen 打开文件 fclose 关闭文件 fread 读取文件 fwrite 写入文件 fseek 移动跳转当前读取/写入位置 <a href="https://www.cnblogs.com/cuckoo-/p/11062856.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/11039188.html
进程程序替换(自主实现shell) - The_Ocean
进程替换 替换进程所运行的程序 流程:将另一段代码加载到内存中,通过页表将原来进程的映射关系重新建立到新的程序在内存中的地址,相当于替换了进程所运行程序以及所要处理的数据 (替换了代码段,重新初始化数据段) 目的:让程序执行其他任务 如何替换:exec函数家族 execl execlp execle
2019-06-17T05:35:00Z
2019-06-17T05:35:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】进程替换 替换进程所运行的程序 流程:将另一段代码加载到内存中,通过页表将原来进程的映射关系重新建立到新的程序在内存中的地址,相当于替换了进程所运行程序以及所要处理的数据 (替换了代码段,重新初始化数据段) 目的:让程序执行其他任务 如何替换:exec函数家族 execl execlp execle <a href="https://www.cnblogs.com/cuckoo-/p/11039188.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/10985689.html
进程控制 - The_Ocean
进程创建: fork函数: 作用:从已经存在进程中创建一个新进程,新进程为子进程,而原进程为父进程。 执行: 分配新的内存块和内核数据结构给子进程 将父进程部分数据结构内容拷贝至子进程中 添加子进程到系统进程列表中 fork返回,开始调度器调度 分配新的内存块和内核数据结构给子进程 将父进程部分数据
2019-06-17T01:34:00Z
2019-06-17T01:34:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】进程创建: fork函数: 作用:从已经存在进程中创建一个新进程,新进程为子进程,而原进程为父进程。 执行: 分配新的内存块和内核数据结构给子进程 将父进程部分数据结构内容拷贝至子进程中 添加子进程到系统进程列表中 fork返回,开始调度器调度 分配新的内存块和内核数据结构给子进程 将父进程部分数据 <a href="https://www.cnblogs.com/cuckoo-/p/10985689.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/10966158.html
调研task_struct结构体 - The_Ocean
进程的描述PCB task_struct——PCB的一种,在linux中描述进程的结构体叫做task_struct. task_struct内容分类: 标识符:描述本进程的唯一标识符,用来区别其他进程 状态:任务状态,推出代码,退出信号等 优先级:相对于其他进程的优先级 程序计数器:程序中即将被执行
2019-06-05T04:41:00Z
2019-06-05T04:41:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】进程的描述PCB task_struct——PCB的一种,在linux中描述进程的结构体叫做task_struct. task_struct内容分类: 标识符:描述本进程的唯一标识符,用来区别其他进程 状态:任务状态,推出代码,退出信号等 优先级:相对于其他进程的优先级 程序计数器:程序中即将被执行 <a href="https://www.cnblogs.com/cuckoo-/p/10966158.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/10970409.html
linux——环境变量 - The_Ocean
环境变量 基本概念: 一般是指在操作系统中用来指定操纵系统运行环境的一些参数 当我们用动态库链接成功的时候,其实就是相关的环境变量帮助编译器进行查找。 环境变量通常具有某种特殊用途,还有在系统当中通常具有全局性 常见环境变量: PATH:指定命令的搜索路径 HOME:指定用户的主工作目录(即用户登录
2019-06-04T09:29:00Z
2019-06-04T09:29:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】环境变量 基本概念: 一般是指在操作系统中用来指定操纵系统运行环境的一些参数 当我们用动态库链接成功的时候,其实就是相关的环境变量帮助编译器进行查找。 环境变量通常具有某种特殊用途,还有在系统当中通常具有全局性 常见环境变量: PATH:指定命令的搜索路径 HOME:指定用户的主工作目录(即用户登录 <a href="https://www.cnblogs.com/cuckoo-/p/10970409.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/10965016.html
进程的了解与僵尸进程的实现 - The_Ocean
进程概念:程序的一个执行实例,正在执行的程序等 内核观念:担当分配系统资源(CPU时间,内训存)的实体 查看进程: 进程存放在根目录下的proc文件中,可以通过/proc系统文件查看: 使用ps aux | grep test 通过系统调用创建进程—fork(在创建子进程的时候其实是复制了task_
2019-06-03T02:46:00Z
2019-06-03T02:46:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】进程概念:程序的一个执行实例,正在执行的程序等 内核观念:担当分配系统资源(CPU时间,内训存)的实体 查看进程: 进程存放在根目录下的proc文件中,可以通过/proc系统文件查看: 使用ps aux | grep test 通过系统调用创建进程—fork(在创建子进程的时候其实是复制了task_ <a href="https://www.cnblogs.com/cuckoo-/p/10965016.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cuckoo-/p/10924174.html
C++---类和对象 - The_Ocean
一:类的定义。 类与C语言中的结构体十分相似,类是以关键字class开头,在加上class name 为类名,{ }中为类的主体,注意在类定义结束的时候要在括号后加入分号{}; 类中的元素成为类的成员:类中的数据恒威类的属性或者成员变量;类中的函数成为类的方法后者成员函数 类的定义有两种方法: 二:
2019-06-02T07:23:00Z
2019-06-02T07:23:00Z
The_Ocean
https://www.cnblogs.com/cuckoo-/
【摘要】一:类的定义。 类与C语言中的结构体十分相似,类是以关键字class开头,在加上class name 为类名,{ }中为类的主体,注意在类定义结束的时候要在括号后加入分号{}; 类中的元素成为类的成员:类中的数据恒威类的属性或者成员变量;类中的函数成为类的方法后者成员函数 类的定义有两种方法: 二: <a href="https://www.cnblogs.com/cuckoo-/p/10924174.html" target="_blank">阅读全文</a>