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