技术栈
并发
名字还没想好☜
2 天前
开发语言
·
爬虫
·
python
·
并发
·
asyncio
Python asyncio.Queue 实战:用生产者-消费者给爬虫/任务流限速又解耦
写异步爬虫或批量任务时,新手最容易掉进的坑是这样的:一次性把 5000 个 URL 全丢进 asyncio.gather。
莫得感情 o
6 天前
java
·
并发
并发 14 · 收官:虚拟线程与结构化并发
第 8 篇讲线程池时,我们花了很大篇幅回答一个问题:“到底该开多少线程?” 答案是一套要权衡 CPU 核数、IO 等待占比、还得靠压测反复迭代的经验公式。第 13 篇讲异步编排时,我们又用 CompletableFuture 把一段本来很直白的业务逻辑,拆成了一串 thenCompose、thenCombine 的链式回调——为的是在等 IO 的时候别把宝贵的线程占着。
喵同志不止步于码农
7 天前
java
·
开发语言
·
后端
·
并发
·
缓存一致性
Java Caffeine 快速入门
在高并发读写的场景下,基础的ConcurrentHashMap 可以保证并发安全,但是过期策略、淘汰策略都需要手动实现,Guava Cache由此诞生,但是身为“智能缓存”的Guava Cache本身不够“智能”。因为LRU缓存在少数场景下可能无法保证高缓存命中率,因此高并发场景下,其依旧存在瓶颈。这也是Caffeine产生的原因,继承 Guava Cache 的优雅 API, 同时在性能和命中率上实现质的飞跃。
莫得感情 o
7 天前
java
·
并发
并发 13 · 异步编排
秒杀下单成功之后,系统要做好几件事:生成订单、扣减库存(如果放在下单接口内已经做过,这里可能是记账/对账)、给用户发一张优惠券、给下游推送一条消息通知发货系统。这几件事有的必须先后串起来(订单生成依赖扣库存成功),有的互不依赖可以并行跑(发优惠券和推消息谁也不用等谁),如果全部塞进一个方法里顺序同步执行,接口响应时间就是这几步耗时的总和——用户会觉得"下单怎么这么慢"。
莫得感情 o
9 天前
java
·
并发
并发 11 · 同步工具类
秒杀活动零点开始之前,系统通常要做一轮"预热":库存服务要把商品库存加载进 Redis,优惠券服务要初始化好发券规则,风控服务要拉取好黑名单——主线程必须等这几个子系统都准备好,才能把"允许下单"的开关打开。这是一个典型的"等待多个任务全部完成"的协作场景,靠前面几篇讲的锁或者 BlockingQueue 都不太顺手,因为这里的诉求不是互斥、也不是传递数据,而是线程之间的节奏协调。
莫得感情 o
11 天前
java
·
并发
并发 04 · CAS 与原子类
上一篇讲锁升级时,轻量级锁那一级反复出现一个词——CAS。线程抢轻量级锁靠它、自旋重试也靠它。这一篇就把这个藏在幕后的主角请到台前:CAS 到底是什么?它凭什么能在"不加锁"的情况下,保证 count++ 这种复合操作的原子性? 要知道,第 3 篇我们才刚说 volatile 做不到原子的自增、得上 synchronized——可整个 java.util.concurrent 包里,有一大批类偏偏做到了"无锁 + 原子",它们靠的正是 CAS。
liulilittle
11 天前
c++
·
安全
·
并发
·
术语
并发与内存安全术语:定义、分类与关联
本文界定并发编程与系统安全领域六个核心术语(RC、DC、TOCTOU、UAF、UB、CC)的内涵、外延及相互关系,并补充邻近术语。描述基于事实与标准,不做价值判断。
liulilittle
12 天前
开发语言
·
c++
·
set
·
map
·
并发
·
无锁
·
lock-free
无锁并发容器的设计与实现原理
——以 mpmc_map 为例的工程化剖析本文以 mpmc_map 库(头文件式 C++11 并发容器:unordered_map、unordered_set、map、set)为对象,系统阐述无锁并发容器从内存模型到工程实现的完整原理。内容包括:并发容器面临的核心问题(锁的代价与内存回收);C++11 原子操作与内存序的基础;分离序链表与并发红黑树两种引擎的算法结构、操作协议与线性化论证;世代回收与危险指针两种回收方案的安全论证与成本模型;节点池、扩容、预取等工程细节及其测量依据;性能数据的诚实解读;以及
liulilittle
25 天前
算法
·
多线程
·
并发
·
无锁
·
mpmc
·
lock-free
无锁多生产者多消费者队列的工程实现剖析——算法、内存模型与性能
以单头文件 C++11 库 mpmc::queue 为例仓库:https://github.com/liulilittle/mpmc_queue
apocelipes
25 天前
c语言
·
并发
·
linux编程
Linux NTSYNC 简明教程
ntsync是Linux内核在6.14引入的新功能,它可以在Linux模拟Windows的可等待对象操作。
晨曦中的暮雨
1 个月前
java
·
并发
·
个人项目
Virtual Thread 优化 Spring AI 阻塞式 LLM I/O:对照压测报告
在基于 Spring AI 的 LLM 调用链中,ChatClient.prompt().call() 属于同步阻塞式 HTTP I/O。请求等待模型响应期间,业务线程几乎不消耗 CPU,却会持续占用平台线程。当并发量超过固定线程池容量后,大量请求会进入执行器队列,导致端到端延迟快速增长。
名字还没想好☜
1 个月前
数据库
·
python
·
php
·
并发
Python concurrent.futures 实战:用 ThreadPoolExecutor 并发处理 + as_completed 收结果
你手头有 200 个 URL 要抓,串行 requests.get 一个个跑,每个网络往返 300ms,光等待就是一分多钟,CPU 全程在打瞌睡。这类「一堆各自独立、主要在等 IO」的活儿,正是线程池的主场。但很多人第一次用 ThreadPoolExecutor 就踩坑:要么用 map 拿不到异常,要么用 submit 后不知道怎么优雅地边完成边收结果。这篇把这些坑一次讲清楚。
神奇霸王龙
1 个月前
人工智能
·
ai
·
架构
·
agent
·
ai编程
·
并发
·
claude
Claude Code 三层架构Subagent并发优化实战
适用读者:想用 Claude Code Subagent 跑大型 monorepo 并行重构、正在评估 Sonnet / Fable / DeepSeek / 国产编程模型兼容性的工程团队负责人 阅读时长:约 12 分钟 测试时间:2026 年 7 月(基于 炻光 AI 接入管理平台 公开文档)
名字还没想好☜
1 个月前
开发语言
·
数据库
·
golang
·
go
·
并发
Go 的 select 实战:超时、非阻塞收发与优雅退出的三个套路
很多人学 Go 并发,select 只会写「从多个 channel 里随便读一个」。但实战里 select 真正好用的是三个套路:给操作加超时、非阻塞地试探 channel、以及优雅关闭 goroutine。这三个不掌握,写出来的并发代码要么卡死,要么泄漏 goroutine。这篇一个一个过。
2401_84149564
1 个月前
c++
·
算法
·
操作系统
·
进程
·
并发
·
同步
·
互斥
【操作系统】进程同步与互斥实验报告
目录一、实验概述二、临界区基础软件实现算法(纯共享变量,无内核原语)1. 单标志法2. 双标志先检查法
名字还没想好☜
1 个月前
开发语言
·
后端
·
golang
·
go
·
并发
Go 用 errgroup 管理并发子任务:错误收敛、取消传播与限流
并发拉一批数据,你大概率写过这样的代码:开五个 goroutine 各自请求一个接口,用 sync.WaitGroup 等它们全部结束。跑起来没问题,直到有一天某个接口挂了——其他四个还在傻等,错误也没人收,日志里只留下一条超时。更糟的是,第一个失败之后剩下的请求已经没意义了,却还在白白消耗连接和 CPU。
名字还没想好☜
1 个月前
后端
·
spring
·
golang
·
go
·
并发
Go 并发 map 怎么选:sync.Map、加锁、分片锁的实测对比
你大概率写过这样的代码:一个全局 map[string]int 做缓存,多个 goroutine 同时读写,某天线上突然 panic:
liulilittle
1 个月前
服务器
·
网络
·
分布式
·
并发
·
通信
·
竞态
论无知:分布式
承认无知,不是认输,是认清边界。有一种认知惯性,认为“知道”是常态,“不知道”是暂时的、可修复的缺陷。今天不知道,明天可以知道。这一代不知道,下一代可以知道。这种惯性把无知视为知识总量的一个减项,等待被新知填补。但有一类无知不是知识总量的减项,而是认知能力本身的边界。它不是尚未被照亮的黑暗,而是光本身无法穿透的墙。
小小工匠
2 个月前
数据结构
·
redis
·
性能优化
·
并发
·
持久化
Redis - 事务机制:能实现 ACID 属性吗
数据库的事务都讲 ACID——原子性、一致性、隔离性、持久性。这四个性质是关系型数据库的根基。Redis 也提供了事务机制,但要回答"Redis 能不能做事务",必须把这四个性质拆开来看。结论是:Redis 的事务和传统数据库事务有本质差异,更像是"批量原子执行"。
小小工匠
2 个月前
redis
·
性能优化
·
集群
·
并发
Redis - 如何使用 Redis 实现分布式锁
在分布式系统里,多个进程需要协调访问共享资源时,分布式锁几乎是绕不开的工具。Redis 因为性能好、部署简单、命令丰富,成为实现分布式锁的最常见选择。但简单不等于容易——一把"看起来能用"的 Redis 分布式锁,真正用到生产环境,常常因为细节问题踩坑。