异步编程——异步与多线程概念
此处,主要涉及到一些概念的辨析。
多线程与异步编程的区别
- 异步并不意味着多线程,单线程同样可以异步(单线程异步、多线程异步)。多线程更像操作系统中的"并行执行",而异步编程则对应着”并发执行“。
- 异步默认借助线程池实现。
- 多线程经常阻塞,而异步要求不阻塞。多线程编程时,为了防止死锁,往往需要直接阻塞当前线程。而在异步编程中,其核心思想就在于不阻塞当前线程的执行。
应用场景
多线程
- 适合 CPU 密集型操作
- 适合长期运行的任务(轮询等
- 线程的创建与销毁开销较大
- 提供更底层的控制,操作线程、锁、信号量等
- 线程不易于传参及返回
- 线程的代码书写较为繁琐
异步编程
- 适合 IO 密集型操作
- 适合短暂的小任务
- 避免线程阻塞,提高系统响应能力
总结
上面总结了一些区别和使用场景,在实际项目中用的更多的还是异步编程(非常方便)。

浙公网安备 33010602011771号