- 博客(7)
- 收藏
- 关注
原创 内存分配概念详解
**堆分配** | 堆(动态区) | 运行时通过`new`/`delete`或`malloc()` | 灵活,手动管理,易出现错误 || **栈分配** | 栈(调用栈) | 编译器自动管理(局部变量) | 快速,生命周期与函数相同 || **静态分配** | 数据段、BSS段 | 编译时确定(静态或全局变量) | 生命周期长,自动管理 |它是计算机程序设计中非常重要的一个环节。
2025-07-12 10:00:58
864
原创 数据结构-栈
**`push`**: 创建新节点,将新节点指向当前 `head` (栈顶),然后更新 `head` 指向新节点。* **`isEmpty`**: 判断 `head` 是否为 `nullptr` (或 `NULL`)。* **`pop`:** 返回 `top` 指针指向的元素,然后减少 `top` 指针。* **`peek`:** 返回 `top` 指针指向的元素,不改变 `top`。* **`peek`**: 返回 `head` 的数据,不改变 `head`。
2025-07-08 18:26:14
915
原创 数据结构-链表
**删除指定节点 (Delete a specific node)**:遍历链表找到要删除节点的前一个节点,修改其 `next` 指针,跳过要删除的节点。* **在链表头部插入 (Insert at the beginning)**:创建一个新节点,使其 `next` 指向原头节点,然后更新头节点指向这个新节点。数组的随机访问速度是O(1),而链表是O(n)。6. **`deleteAt(int index)` (删除):** 根据索引找到要删除的节点的前一个节点,修改指针实现删除。
2025-07-08 18:14:30
858
原创 构建线程安全队列
提供了一种简单而有效的线程安全队列实现。它使用互斥锁保护共享数据,使用条件变量实现线程间的同步。理解其原理以及如何使用lock_guard和等工具是编写线程安全 C++ 代码的基础。正确使用线程安全队列,可以大大简化多线程程序的开发,减少数据竞争和潜在的错误,从而提高程序的可靠性和效率。这个线程安全的队列是多线程编程中一个非常重要的工具。通过理解其实现细节,你可以更好地利用它来构建健壮的多线程应用程序。
2025-07-08 11:31:17
888
原创 套接字重用setsockopt函数
套接字描述符 (socket descriptor)。这是一个整数,代表先前通过。指向的选项值的大小,以字节为单位。这是非常重要的,必须正确指定。要设置的选项的名称。例如,对于布尔类型的选项 (如。可能会导致错误的结果或程序崩溃。函数的操作直接针对这个套接字。指向要设置的选项值的指针。系统调用创建的套接字。
2025-07-08 11:21:20
343
原创 线程池的实现
但在使用线程池时,需要根据具体的应用场景和需求来合理配置线程池的参数,以充分发挥线程池的优势并避免潜在的问题。任务队列可以缓冲任务,当线程池中的线程空闲时,可以从任务队列中取出任务执行,实现任务的异步执行和平衡负载。线程池会根据任务的多少去动态变换线程的个数,当然,线程池中也会有一定的空闲线程来应对随时到来的任务,线程池的编写可以极大程度的对资源的充分利用,同时也可以较少线程的频繁创建销毁的开销.调试和排错难度增加:由于线程池中的线程是复用的,任务的执行可能会受到其他任务的影响。
2023-12-26 19:00:42
877
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人