在应用业务实现过程中,对于相对独立的耗时任务,如果放在主线程中执行会阻塞主线程的UI业务,出现卡顿丢帧等影响用户体验的问题。通常需要将这个独立的耗时任务放到单独的子线程中执行。典型的耗时任务有CPU密集型任务、I/O密集型任务以及同步任务。
常见的业务场景如下所示:
常见业务场景 |
具体业务描述 |
场景类型 |
||
CPU密集型 |
I/O密集型 |
同步任务 |
||
图片/视频编解码 |
将图片或视频进行编解码再展示 |
√ |
√ |
× |
压缩/解压缩 |
对本地压缩包进行解压操作,或者本地文件的压缩操作 |
√ |
√ |
× |
JSON解析 |
对JSON字符串的序列化和 |