Overview of Concurrency in Time-Consuming Tasks
Time-consuming tasks are those that take a long time to complete. If executed in the UI main thread, they can cause application lag, frame drops, and slow response times. Typical examples include CPU intensive tasks, I/O intensive tasks, and synchronous tasks.
Typical service scenarios are as follows:
| Service Scenario | Description | Is CPU Intensive Task | Is I/O Intensive Task | Is Synchronous Task |
|---|---|---|---|---|
| Image/Video encoding and decoding | Encoding or decoding images or videos for display. | Yes | Yes | No |
| Compression and decompression | Decompressing local archives or compressing local files. | Yes | Yes | No |
| JSON parsing | Serializing and deserializing JSON strings. | Yes | No | No |
| Model computation | Performing data analysis using models. | Yes | No | No |
| Network download | Downloading resources, images, and files via intensive network requests. | No | Yes | No |
| Database operations | Saving data like chat records, page layouts, or music lists to the database, or reading from the database on application restart. | No | Yes | No |