我对单线程和多线程编程之间的区别有一个误解,所以我想回答下面的问题,以使一切清楚。
假设有 9 个独立的任务,我想用一个单线程程序和一个多线程程序来完成它们。基本上它会是这样的:
单线程:
- Execute task 1
- Execute task 2
- Execute task 3
- Execute task 4
- Execute task 5
- Execute task 6
- Execute task 7
- Execute task 8
- Execute task 9
多线程:
线程1:
- Execute task 1
- Execute task 2
- Execute task 3
线程2:
- Execute task 4
- Execute task 5
- Execute task 6
线程3:
- Execute task 7
- Execute task 8
- Execute task 9
据我了解,一次只会执行一个线程(获取CPU),一旦量子完成,线程调度程序会将CPU时间分配给另一个线程。
那么,哪个节目会更早完成呢?它是多线程程序(逻辑上)吗?还是单线程程序(因为多线程有很多上下文切换需要一些时间)?为什么?我需要一个很好的解释:)