搜索架构之道:App中的搜索系统设计与优化实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.1 多线程技术

多线程技术是一种在计算机程序中同时运行多个任务的技术,旨在提高程序的并发性和效率。如在需求输入阶段,用户输入的过程和搜索建议的获取过程分别由两个线程并行执行,目的是两个任务在执行的过程中互不影响。

用户输入的过程与UI交互相关,一般来讲,UI相关的操作都是在主线程中完成的,而要想网络请求相关的过程与用户输入的过程并行处理、不相互等待,这时就需要使用多线程技术。

图2-3 搜索建议示例

在单核CPU上实现同个时间段运行多个线程,操作系统会将小的时间片分配给每一个线程,这样就能够让用户感觉到有多个任务在同时进行,避免任务之间相互等待。如果CPU是多核的,那么多线程就可以真正以并发方式执行,从而减少完成某项操作所需要的总时间。关于并行化的相关内容将在第4章介绍。