自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 enable_shared_from_this 机制

shared_ptr会增加资源的引用计数,常用于管理对象的生命周期。weak_ptr不会增加资源的引用计数,常作为观察者用来判断对象是否存活。使用shared_ptr的普通拷贝构造函数会产生额外的引用计数对象,可能导致对象多次析构。使用shared_ptr的拷贝构造函数则只影响同一资源的同一引用计数的增减。当需要返回指向当前对象的shared_ptr时,优先使用enable_shared_from_this机制。httpshttpshttps。......

2022-07-30 12:21:32 2703 1

原创 C++智能指针

当试图调用auto_ptr的拷贝构造函数时,在初始化列表中调用了release函数,release函数用一个_Tmp指针保存资源并返回用于初始化当前的auto_ptr的类成员_Myptr,而_Right对应的_Myptr被置为ptr。与auto_ptr不同,scoped_ptr私有化了拷贝构造函数和赋值函数,因此,资源的所有权无法进行转移,也无法在容器中使用,保证了资源的所有权。不带引用计数的智能指针包括auto_ptr、scoped_ptr和unique_ptr。...

2022-07-23 13:27:49 520

原创 c/c++除0问题

整数0,如1/0会直接报错,这就相当于我们平时的认知,0是不能作为整数的.double0,如1/0.0不会报错,运算结果为无穷大inf,即infinity的缩写.我们可以通过intisinf()来判断一个数是否为无穷大.同时nan表示"notanumber",即这个数不存在,为非法操作.这两个数在用printf输出时会转化为不同的形式,但是意思没有变.可以用来判断是否出现一些非法操作..........

2022-07-19 19:34:18 5014

原创 sizeof用法总结

a为一个指针,sizeof(a)是求指针的大小,在32位系统中,当然是占4个字节。//因为func的返回类型为int,所以相当于求sizeof(int).//函数的参数在传递的时候系统处理为一个指针,所以sizeof(s)实际上为求指针的大小。inta[50];第一、结构或者类中的静态成员不对结构或者类的大小产生影响,因为静态变量的存储位置与结构或者类的实例地址无关。//sizeof(s)=4,s为一个指针。第二、没有成员变量的结构或类的大小为1,因为必须保证结构或类的每一个实例在内存中都有唯一的地址。..

2022-07-19 19:30:20 422

原创 IO模型-异步I/O模型

异步I/O模型是进程通过系统调用告知内核启动某个I/O操作,内核启动I/O操作后立刻返回到进程,进程在I/O操作发生期间继续执行程序,当IO操作完成或遭遇错误时,内核以进程在I/O系统调用中指定的某种方式通知进程操作结果。说明首先用户态进程告诉内核态需要什么数据,然后用户态进程继续执行程序,内核等待用户态需要的数据准备好,然后将数据复制到用户空间,操作完成后才告诉用户态进程结果,然后用户态进程直接处理用户空间的数据。在复制数据到用户空间这个时间段内,用户态进程在正常执行程序。.........

2022-07-17 20:13:29 2138

原创 IO模型-信号驱动式I/O模型

信号驱动式I/O模型是指进程预先告知内核,使得当某个描述符上发生某事时,内核使用信号通知进程。

2022-07-17 20:00:30 655

原创 IO模型-I/O复用模型

IO复用模型一般为异步阻塞IO,但select、poll、epoll本质上还是同步IO(都是需要读写事件就绪后再进行读写,而且整个读写的过程是阻塞的),真正意义上的异步IO是不需要负责进行读写操作的。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需要一次。​缺点单个进程能够监视的文件描述符的数量存在最大限制,在Linux上为1024,可以通过修改宏定义甚至重新编译内核的方式提升这一限制,但这样会造成效率的降低。.....

2022-07-17 19:34:15 1210

原创 IO模型-非阻塞IO模型

NIO即Non-BlockingIO,是非阻塞IO模型。概念限定范围通过系统api获取数据。也就是说调用系统api获取数据后,会立刻返回结果,程序不会阻塞等待数据。根据返回的结果判断是否继续重复调用系统api获取数据。.........

2022-07-17 18:46:53 623

原创 IO模型-阻塞IO模型

阻塞式IO模型指通过调用系统api读取/写入数据时,如果数据一直没有获取/写入,那么整个进程阻塞,直到该操作完成或者产生异常为止;针对符合此类IO操作的流程叫做阻塞式IO模型。一、概念阻塞式IO模型,我们常用的api基本都是阻塞式IO。如c语言的stdio.h库的所有函数(包含scanf(),getchar(),gets()等函数)。应用程序的调用是否立即返回数据拷贝的时候进程是否阻塞阻塞是IO操作简单,操作api为系统调用,执行对应api后进程会阻塞,直到api有结果返回,进程再继续执行下边语句。....

2022-07-15 21:00:56 677

空空如也

空空如也

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

TA关注的人

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