- 博客(32)
- 收藏
- 关注
原创 IO操作同步、异步、阻塞、非阻塞之间的联系
本质来说,同步,异步,阻塞、非阻塞没有什么必要的关系。异步也可以是非阻塞的,(也可以是阻塞的,发起 I/O 请求时,系统会立即返回,随后通过回调函数或信号等方式通知调用方 I/O 操作的结果。异步 I/O 的核心特性就是调用方不需要等待 I/O 操作完成后再继续执行,因此异步 I/O 本质上是。虽然同步 I/O 通常是阻塞的,但并不是绝对的。,但在特殊情况下,比如系统资源不足或底层实现的问题,可能会出现阻塞的现象)但在特殊情况下,比如系统资源不足或底层实现的问题,可能会出现阻塞的现象。
2024-10-05 12:53:58
457
原创 mutex,lock_guard ,unique_lock 的使用和区别
mutex,lock_guard ,unique_lock 的使用和区别
2024-08-18 16:37:43
677
原创 维护一个对象只能通过new来创建,且要实现对象能够自动销毁的单例代码实现及扩展。
1. 如果全局只需要一个实例对象,且要实现自动管理资源和释放。构造和析构都要私有,我们只需要调用getinstance 函数就可拿到这个实例。2.如果在Main中希望通过显示的New来创建对象且可以有多个对象被new,则必须将构造公有,析构私有。且必须实现成员函数destory来delete 对象,不然New出来的对象不会走析构代码。3.最后还要提供一些静态成员属性和方法来辅助实现。4.对于自动管理资源的单例对象 有什么好处呢?
2024-06-08 13:14:47
914
1
原创 面试题:函数的参数传引用的好处
最好是传引用,在下面代码中,复制构造函数A(A other)传入的参数是A的一个实例。因此如果允许复制构造函数传值,就会在复制构造函数内调用复制构造函数,就会形成永无休止的递归调用从而导致栈溢出。因此C++的标准不允许复制构造函数传值参数,在Visual Studio和GCC中,都将编译出错。1.使用引用传参,不会创建拷贝,可以提升效率并节省了空间,比如我们要传一个很大的结构体,用引用传参就省去了拷贝这个结构体的开销。2、在函数中对该变量进行修改,则参数返回后修改依然存在,与值传递不同;
2024-03-21 19:51:36
423
1
原创 printf,sprintf,snprintf VS vprintf,vsprintf,vsnprintf 对比 以及文件写入函数fprintf 和 vfprintf函数的用法
printf,sprintf,snprintf VS vprintf,vsprintf,vsnprintf 对比
2024-03-16 18:14:34
1409
1
原创 判断回文链表的4种做法,递归,栈,反转链表,和把链表转为数组使用双指针进行判断数组回文 leetcode234题回文链表
使用递归最复杂,栈次之,时间空间均为0n,反转链表 ,反转前n/2个可得到时间0n空间01的做法。
2024-03-11 20:04:50
523
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人