-
Python asyncio.Event 适合广播一个共享完成信号:set() 唤醒所有等待协程,wait() 只等待状态,clear() 开启下一轮。本文说明如何让多个协程等待同一 Event,以及为什么结果数据应走独立容器。
-
ContextDecorator 适合把上下文管理器复用为函数装饰器,但可变状态若留在共享实例上,重复调用就会相互污染。本文用一个可复用实现说明状态拆分、_recreate_cm、异常清理和显式 with 的选择。
-
Python asyncio.Semaphore 用一个内部计数器限制同时进入某段协程工作的任务数量。本文从计数语义出发,说明 async with、手动 acquire/release、异常清理、等待超时和 Semaphore 与 BoundedSemaphore 的选择。
-
Java String.indent() 不只是给每行前面加空格,它会先按 lines() 处理文本,再为每个结果行追加 LF。因此没有末尾换行的输入调用 indent 后通常会多出一个换行符。本文说明正负缩进、CRLF/LF 规范化和保留末尾换行的写法。
-
使用 Java NumberFormat 工厂按 Locale 创建紧凑数字格式器,解释 SHORT/LONG、小数位和任务实例复用,并保留原始数值用于存储和计算。
-
Java String.lines() 可以把包含 CRLF、LF 和 CR 的混合文本统一拆成不带行终止符的行流。本文说明它的识别范围、空文本与末尾换行边界,并给出按 LF 导出规范化文本的写法。
-
MappedByteBuffer.load() 是尽力把映射内容预取到物理内存,可能触发缺页和 I/O;isLoaded() 只返回当前驻留状态的提示,false 也不代表内容一定不在内存中。本文用最小映射示例比较两者职责、工作负载和操作系统边界。
-
说明 Java MappedByteBuffer.force(index, length) 如何使用映射内相对索引,给出非零映射起点的更新示例,并区分容量约束、底层写出粒度和事务保证。
-
Java ByteBuffer 的 duplicate() 与 slice() 都共享底层字节,但在 position、limit、capacity、mark 和字节序上有不同使用边界。本文用示例说明如何选择视图。
-
本文围绕 Java ByteBuffer 的 alignmentOffset 与 alignedSlice,说明按 2 的幂字节单位计算对齐偏移、起止位置和切片容量,并整理 direct 缓冲区、空切片与共享视图的边界。
-
Java DirectoryStream 创建后必须关闭,遍历 I/O 错误会包装为 DirectoryIteratorException。本文从手写关闭迁移到 try-with-resources,说明如何提取 IOException 原因并保留 close 阶段的 suppressed exception。
-
Java UserPrincipalLookupService 查找用户组失败时,先确认取到的是当前文件系统的查找服务,再使用 lookupPrincipalByGroupName。本文区分用户组名不存在、用户与组方法混用、提供者不支持组查找以及 IOException/权限异常,并给出保留失败名称的排障写法。
-
通过 Java AclFileAttributeView 读取并保序展示文件 ACL,解释主体、类型、权限和标志,区分视图不支持、读取失败与空列表,并说明有效访问权限的判断边界。
-
Java PosixFileAttributeView 的 setPermissions 只更新 POSIX 权限集合,不会重写文件内容。本文说明如何获取视图、复制并修改权限集合、处理不支持 POSIX 文件系统和 I/O 异常,并比较它与 Files.setPosixFilePermissions 的选择。
-
PHP 首类 callable 与 Closure::fromCallable 都能生成 Closure,主要差别在 PHP 版本、语法表达、动态 callable 处理和可见性检查边界。本文用代码与对比表说明如何选择。