Go语言技术文章
-
Python contextvars 可以用 copy_context() 复制当前上下文,再用 Context.run() 让回调在副本中读取和修改 ContextVar。本文说明上下文隔离、外层恢复、空 Context、重复进入和异常传播等边界。143 收藏 -
使用请求级 LoggerAdapter 为 Python 日志附加上下文,解释 extra、字段缺失、merge_extra 版本边界和默认值的区别,并给出避免请求串号的示例。364 收藏 -
用 Python sqlite3.Connection.backup 将正在访问的 SQLite 数据库复制到独立目标连接,掌握分页、进度回调、锁竞争和资源关闭的实用写法。355 收藏 -
Python enum.Flag 适合表达可多选的权限、能力和功能开关。本文从基础标记定义开始,说明按位或组合、按位与判断、in 成员检查、零值与输入转换边界,并给出可维护的权限检查写法。167 收藏 -
Python sqlite3 可以通过 Connection.getlimit() 查询当前连接的 SQLITE_LIMIT_SQL_LENGTH,区分 SQL 文本长度与数据大小,并结合 setlimit() 的旧值语义完成超长 SQL 排查。323 收藏 -
用 ParamSpec 和 Callable[P, R] 为装饰器转发原函数参数与返回值类型;当装饰器注入固定参数时,再用 Concatenate 表达新的调用签名。309 收藏 -
Python asyncio 处理同步阻塞函数时,可以用 asyncio.to_thread 把 I/O 工作放到线程执行;但取消等待任务不等于强制停止线程。本文比较 to_thread 与 run_in_executor,说明 contextvars、异常和协作式取消边界。395 收藏 -
Python asyncio.timeout_at() 接收事件循环时钟上的绝对 deadline,适合把一次请求的总截止时间传给多个嵌套协程。本文对比 timeout、timeout_at 和 wait_for,说明异常捕获、剩余预算、动态 reschedule 与过期边界。256 收藏 -
Python SharedMemory 中,close 只关闭当前实例持有的句柄,unlink 才是删除共享内存块;创建者、连接者和最后责任方要按不同角色安排清理,独立进程还要留意 track 的资源跟踪边界。319 收藏 -
Java 进程 RSS 持续上涨时,先用 jcmd VM.native_memory 建立基线,再用 summary.diff 或 detail.diff 判断是 JVM 子系统、线程、类元数据还是 NMT 未覆盖的第三方原生内存。476 收藏 -
Java ObjectInputFilter 可以为 ObjectInputStream 增加类名、数组长度、引用数、深度和字节数限制。本文用一个小实验说明流级过滤器、程序化检查和 JVM 级配置的取舍。307 收藏 -
Java JDBC 批量插入后,可以通过 RETURN_GENERATED_KEYS 请求生成键,再用 getGeneratedKeys() 遍历驱动返回的 ResultSet。本文给出完整写法,并说明空结果、驱动支持、顺序映射、事务回滚和资源关闭等边界。341 收藏 -
Java Collectors.teeing把同一批元素交给两个下游收集器,再合并完成结果。用总数量与最大项示例说明结果类型、空流约定、并行特征和适用边界。327 收藏 -
Java 接口同时收到日期、带 T 的时间和带空格的时间时,可以用 DateTimeFormatterBuilder 组织可选秒数,再用多个候选格式器处理真正不同的分隔符。本文给出严格解析、parseBest 和落地边界。501 收藏 -
Java 25 StructuredTaskScope 子任务失败时,使用 FailedException 读取原始原因,让兄弟任务响应中断,并用 close 等待资源安全收尾。208 收藏