ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

多线程=高并发?

多线程=高并发? 二者不能划等号多线程是实现并发的一种手段并发是程序运行的一种现象/能力。 而且并发 ≠ 并行。1. 概念拆解并发Concurrency宏观上多个任务交替推进同一时刻不一定同时执行。 单核CPU上快速切换任务看起来像一起跑这就是并发。核心任务可以交替调度不是同时执行实现并发的方式不止多线程多进程协程Go协程、Python asyncio异步IO单线程异步并发 ≠ 一定有多线程单线程异步也能实现并发。多线程Multi-thread一个进程内部创建多条执行流线程共享进程资源。 多线程只是并发的实现方案之一。 多线程程序不一定是并发比如所有线程串行排队执行没有调度交替就谈不上并发。并行Parallelism多核CPU同一时刻多个任务真的同时运行。 并行属于并发的子集广义并发包含并行面试常区分并发交替跑单核也能做到一定是交替跑吗【狭义并发交替跑广义并发包含两种情况交替跑 同时跑并行】并行同时跑必须多核2. 举例子单线程异步Node.js只有1个线程通过事件循环切换处理多个请求 →并发但不是多线程Java多线程跑在单核CPU多个线程轮流切换执行 →多线程实现并发Java多线程跑在多核CPU多个线程同时在不同核上跑 →多线程并行属于广义并发
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进