
基础组件
文章平均质量分 79
qq_57041630
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
无锁消息队列
分为put队列和get队列,put队列用于生产者、get队列用于消费者,当put队列和get队列为空时阻塞消费者线程,当get队列为空时,尝试与put队列进行交换,此时生产者和消费者发生碰撞,其他情况,生产者不与消费者发生碰撞(争夺锁)。(2).由于多线程情况下,当一个线程拿到锁以后,其它线程需要经过自旋等待、阻塞态、就绪态,时间浪费在保护队列时的锁争夺上面,而不是用在执行任务上。答:如果是从操作队列的角度出发,无所队列性能高,如果是从队列所属系统角度出发,不一定,还需要看任务耗时。队列,它将明显更快。原创 2024-06-25 14:31:46 · 1409 阅读 · 0 评论 -
原子操作CAS与锁实现二
操作同时具有获得语义和释放语义,即它前后的任何读写操作都不允许重排,并且其他线程在对同一个原子对象释放之前的所有内存写入都在当前线程可见,当前线程的所有内存写入都在对同一个 原子对象进行获取的其他线程可见;在多线程情况下,操作原子变量时,cpu为避免锁总线会去操作其他变量,但这是无序,可能不符合当前的代码逻辑,所以需要程序员自己规定内存序,定重排规则。,在写入某原子对象时, 当前线程的任何前面的读写操作都不允许重排到这个操作的后面去,并且当前线程的所有内存写入都在对。如果替换成功, 则返回原来的值。原创 2024-06-18 14:42:03 · 984 阅读 · 0 评论 -
原子操作CAS与锁实现一
多线程环境下,确保对共享变量的操作在执行时不会被干扰,从而避免竞态条件.原创 2024-06-17 14:19:53 · 624 阅读 · 0 评论 -
mysql连接池实现
1.创建一个连接Mysql的线程池,作用是维持和管理固定数量与数据库的TCP长连接,实现资源复用,更快的系统响应。原创 2024-06-16 20:47:56 · 845 阅读 · 0 评论 -
内存池实现二
可以分配更大的内存,结构如下:第一个位置max用于判断需要分配的内存大小,大于max使用大块,小于max使用小块;第二个位置指针指向小块的首地址;第三个位置指针指向大块首地址。原创 2024-06-12 10:04:01 · 331 阅读 · 0 评论 -
内存池的实现
内存池实现原创 2024-06-03 14:30:55 · 593 阅读 · 0 评论 -
线程池与性能分析
线程的一种使用模式,线程过多会带来调度开销,进而影响缓存局部性和整体性。而线程池维护着多个线程,等待监督管理者分配可并行执行的任务。这样避免了在短时间内创建和销毁线程的代价。线程池不仅能够内核的充分利用,还能防止过分调度。可用的线程数据取决于可用的并发处理器,处理内核,内存,网络sockets等数量。原创 2024-06-03 10:53:13 · 389 阅读 · 0 评论