自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 线程更新中

线程代表一列有顺序的,需要CPU执行的指令,可以随时被内核开始,中断或继续运行。线程使用栈来记忆如何从函数中返回,及存储变量,每个线程都有自己的栈和程序计数器 ---- 线程控制块(处理器状态,线程标识符。。。)堆,地址空间和全局变量时共享的内核级线程:进程状态和线程状态不一样 如果一个线程给自己的进程发送sleep信号这个线程可以继续运行。线程可以占多个cpu。用户级线程:一个线程遇到IO被阻塞时整个进程都会被阻塞,进程去调度线程只占一个cpu。#include <pthr

2021-03-31 21:38:16 74

原创 进程的哲学,创建,通信。

进程预习内容进程空间image 程序怎么变成进程 二进制文件读入内存 生成进程空间 给cpu调度instance 进程中有什么东西(文件,用户租, 线程 , 二进制image ,安全的上下文关系(u盘插拔))虚拟内存(让开发者不用担心这段空间) 虚拟文件系统(抽象树结构)pid_t pid (0 - 2^16) 可以设置内核配置扩大 往后取取到2^16 循环读fd (0 1 2 3) 先读最小的 这样最大的文件标识符是 个数+1进程在用户

2021-03-31 21:37:16 79

原创 高级IO

高级IO同步IO一般向磁盘写数据 利用write交给内核后 内核会保留数据返回成功(这个是非同步)同步的话就是向磁盘中写数据 内核就要写到磁盘中 (并发的意思)(和线程的同步不一样的意思)int open(const char *pathname, int flags, mode_t mode);//O_SYNC //int fsync(int fd);//每次调用write还是有缓冲 write完之后调用fsync()函数//确保数据写入磁盘直接IO用户层的缓冲

2021-03-31 21:35:11 106

原创 系统编程相关的系统调用

系统编程命令行解析GETOPT 函数头文件 : <unistd.h>原型 : int getopt(int argc, char * const argv[], const char *optstring);argc argv : 由main 函数的参数直接传递而来optstring : 一个包含准确选项的字符串返回值 : 返回下一个选项// 四个全局变量 通常和while一起使用//char *optarg 指向当前选项的参数//int optind 下一个选项的

2021-03-31 21:33:52 106

原创 function模板类的实现,bind绑定方法,线程的使用

C++线程的使用线程传引用的时候要加ref 线程类将一个函数和这个函数的参数绑定//线程类的构造函数 是一个变参模板函数template< class Function, class... Args > explicit thread( Function&& f, Args&&... args );#include<iostream>#include<algorithm>#include<thread&gt

2021-03-30 17:57:06 280

原创 设计模式

设计模式单例模式一个类只能创建一个对象 ---- 单例模式的核心资源控制2、实现单例的步骤(1)、构造函数私有化并且删除拷贝构造 //内外不能实例化(2)、提供一个全局的静态方法 //不需要对象也可以调用(3)、在类中定义一个静态指针,指向本类的变量的静态指针变量!!!两种模式一个编码复杂资源利用效率高 一个编码简单资源利用效率低class SingleInstance {public: static SingleInstance *getInst

2021-03-30 17:54:18 143

原创 异常处理

异常处理关键三步:try 有可能发生异常的地方;throw 抛出变量/自定义类的对象catch 捕获异常类进行处理(按数据类型进行捕获)#include<iostream>#include<algorithm>using namespace std;int main() { int age = 100; try { if (age >90) { throw(age); cout

2021-03-30 17:52:54 56

原创 模板

模板数据结构:能够存在任意类型算法:能够操作任意类型模板函数类实例化 — 对象 模板实例化 ---- 函数代码参数类型推导(作用在运行期)decltype(a + b) 自动推导类型 表达式---- 类型声明 = 定义和声明 都要写在头文件里#include<iostream>#include<algorithm>using namespace std;class A {public: A() = delete;

2021-03-30 17:51:06 201

原创 Boost的理解shared_ptr 和 weak_ptr

Boost库(智能指针)智能:将所申请到的空间交由一个对象去管理,预防程序中出现异常或者由于自己忘记释放所申请的空间,造成内存泄漏的问题。 通过对*和->的重载,使其对象具有指针的特性 。头文件 #include;auto_ptr vc版本利用一个字段判断拥有权,转移时要释放原有空间VC版的实现:拥有权的转移,_Owns(此成员起的作用)。缺点:在_Owns为1/0时(这个牵扯到释放空间),*pa对象都可访问,就是那个地址还保留着,转移的不彻底,存在安全隐患!linux版本没有了转移权

2021-03-21 13:14:17 391

原创 C++11 一些关键字 ,C++11左值右值和移动构造

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-03-20 19:30:59 132

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除