lwlwilliam

随便唠唠异步

2026/01/07 操作系统

再看操作系统原理时,又“吸收”了一个名词“页缓存”,跟ChatGPT扯了下之后,就有了更深刻的理解,于是灵光一现问了以下问题:

async

异步I/O的本质就是提交I/O后,不会阻塞调用者,并在I/O完成后通知调用者结果。

现在分析一下我的问题。在用户层面实现I/O函数,并通过用户层面实现的“页缓存”(本质上就是内存)来处理数据。也就是说,在数据落盘前,I/O函数只需要跟内存打交道,只要在内存层面处理好数据即可返回处理结果,因此实际上I/O操作并不会阻塞调用者,而可以在后台线程统一对这些用户层面的“页缓存”同步到I/O设备,完成后再通知业务线程。所以这种实现方式在原理上可行的,当然实际上还有很多细节要处理。

最近PHP社区讨论异步RFC闹得沸沸扬扬,哎,不知道该怎么评价,大部分社区成员都希望保持PHP的简单性,不希望引入复杂的异步,无共享架构深入人心了,而且添加异步是否会影响现存的大量项目也是很多人纠结的。也有很多社区声音觉得PHP应该抛弃沉重的包袱,大胆更新。目前看讨论情况,估计是难了,异步功能庞大,推动的人应该只能说只有一个,挺佩服作者的,单枪匹马坚持了一年多;另外PHP社区中缺少相应领域的编译器专家,即使功能是好的,但能审核的人也没几个,大家对自己不懂的东西还是很保守的。

Search

    Table of Contents