
基础组件
文章平均质量分 81
文弱书生子
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
(面试经典问题之无锁队列篇)无锁队列的基本原理及其作用
由名字可知,无锁队列首先是个队列,并且不能使用互斥锁。原创 2025-02-27 22:00:47 · 847 阅读 · 0 评论 -
(面试经典问题之原子操作篇)原子操作CAS与锁实现
原子操作(Atomic Operation)是指在多线程并发编程中,作为一个不可分割的单元执行的操作。无论操作过程中是否有其他线程或进程的干扰,它都会以整体的方式执行完毕。换句话说,原子操作在执行时要么完全完成,要么完全不做,过程中不会被中断,并且中间状态也不会暴露给其他线程。不可分割性:在执行过程中,操作不会被其他线程或进程打断。一致性:无论操作的执行顺序如何,结果都是一致的。高效性:因为原子操作不需要使用锁(或者使用非常轻量的锁),所以它比传统的锁机制要高效,特别是在高并发的场景中。原创 2025-02-25 16:51:40 · 1316 阅读 · 0 评论 -
C/C++后端开发面试表述、技术点摸底——基础组件篇
前端时间笔者系统学习了基础组件中的池式结构(包括线程池、内存池、连接池),原子操作,锁,无锁队列,网络缓冲区,定时器设计,分布式锁,有些内容笔者已经总结整理成了相关技术文档,读者若感兴趣可以翻看笔者的个人空间进行查阅,剩余没写的笔者会在近期总结整理。本文是笔者在阶段性学习后进行的一次全面总结整理,旨在对之前没整理到的技术细节以及面试常问的问题表述进行查漏补缺,并且分享给大家。原创 2025-02-24 12:25:12 · 751 阅读 · 0 评论 -
(面试经典问题之连接池篇)连接池构成、作用及其基本原理详解
连接池一般指的是数据库连接池(connection pooling),是指程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态的对池中的连接进行申请,使用,释放(跟前面文章提到线程池、内存池的概念很像,因为他们都是属于池式结构)。原创 2025-02-23 12:47:26 · 847 阅读 · 0 评论 -
(面试经典问题之虚假唤醒)虚假唤醒的原理和解决方案
虚假唤醒是指线程在没有条件满足的情况下被唤醒,可能导致程序错误。为了避免虚假唤醒,线程在被唤醒后需要重新检查条件。循环检查条件是避免虚假唤醒的标准方法,确保线程只有在条件真的满足时才继续执行。原创 2025-02-22 16:07:30 · 733 阅读 · 0 评论 -
(面试经典问题之分布式锁)分布式锁的基本原理、作用以及实现
分布式锁指的是在分布式场景中实现互斥类型的锁。分布式是什么意思?分布式表示运行的节点可能在不同的机器或不同的网段中,节点间通信通过socket。互斥类型是什么意思?互斥类型表示同一时刻只允许一个执行体进入临界资源。原创 2025-02-22 15:55:30 · 793 阅读 · 0 评论 -
(面试经典问题之内存池篇)内存池构成、作用及其基本原理详解
内存池是一种管理和复用内存的技术,通过预分配一定量的内存块并对其进行维护,从而避免频繁的内存申请和释放,提升系统性能,尤其在高并发的应用场景下尤为重要。内存池通过减少内存操作的开销,优化程序的内存管理,避免频繁的内存分配与释放导致的性能瓶颈。内存池是提升系统性能的关键技术之一,特别是在高并发、内存密集型的应用场景中,内存池通过预分配固定大小的内存块,避免了频繁的内存申请和释放操作,从而减少了内存碎片、提升了效率。原创 2025-02-21 13:41:43 · 402 阅读 · 0 评论 -
(面试经典问题之线程池篇)线程池构成、作用及其基本原理详解
线程池是一种管理和复用线程的技术,通过维护一定数量的线程来执行任务,从而避免频繁创建和销毁线程,提升系统性能,特别是在高并发场景下。它提供线程复用、任务排队和线程管理等功能。更精简的说:线程池是维持管理固定数量线程的池式结构。原创 2025-02-21 10:54:12 · 468 阅读 · 0 评论