前言
单线程就是一个工人在搬砖,多线程就是多个工人在搬砖;在相同数量的砖要搬的情况下,多个工人搬砖肯定比一个人搬的快。
那多个工人做事一定比一个工人做事快吗?那不一定,不过大多数情况下是的。多线程只是可以同时接收多个任务,但不一定马上去执行任务。这里要看有多少资源(单核 or 多核)和做什么任务(计算密集型任务 or IO密集型任务)。基于这两个条件进行笛卡尔积形成的场景来分析单线程和多线程的工作效率。
单核:单核处理器指的是只有一个物理核心的处理器。物理核心是处理器中的实际计算单元,能够执行指令和处理数据。在单核处理器中,只能同时执行一个线程或进程。即使使用多线程编程,也只能通过时间片轮转的方式在不同线程之间进行切换,每个线程在某个时间片内独占处理器的执行时间。
多核:多核处理器指的是具有多个物理核心的处理器。多核处理器将多个物理核心集成到一个芯片上,每个核心都是一个独立的计算单元,能够并行执行指令和处理数据。每个核心可以独立地执行一个线程或进程,因此多核处理器可以同时执行多个线程或进程,提供更高的并行处理能力。
计算密集型任务:计算密集型任务是指那些主要依赖 CPU 运算能力的任务。通常涉及大量的数值计算、复杂的算法或模型运算,而对于 I/O 操作的需求相对较低,受限于 CPU 的运算速度。
IO密集型任务:I/O 密集型任务是指那些主要依赖于输入/输出操作的任务。这些任务通常需要频繁地进行文件读写、网络通信、数据库访问等 I/O 操作,而对于 CPU 的计算能力需求相对较低。
单核 + 计算密集型任务:
在单核情况下,只有一个物理核心处理器,多线程和单线程最终都落在一个核心处理器(CPU)去处理任务,此时的多线程只是分时段的获取同一个CPU处理任务。就好比工人使用一个计算器来记账,最

最低0.47元/天 解锁文章
853

被折叠的 条评论
为什么被折叠?



