12.5.5 阻塞I/O

Symbian操作系统通过活动对象处理阻塞I/O。设计者认识到等待I/O事件的所有线程的负荷会影响系统中的其他线程这一事实。活动对象使得阻塞I/O调用可以由操作系统来处理,而不是进程自身。活动对象由一个调度器进行协调并且在一个单独的线程中执行。

当活动对象使用一个阻塞I/O调用时,它用信号通知操作系统并且把自身挂起。当调用完成时,操作系统唤醒挂起的进程,该进程如同带有数据返回的函数一样继续执行。区别只是对于活动对象的一个观点:它不能调用一个函数并期待一个返回值;它必须调用一个特殊的函数并且使该函数设置阻塞I/O,但是立刻返回。操作系统接管等待过程。