- 博客(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复用模型
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关注的人