concurrency - 单核 CPU 能否实现真正的并发?

标签 concurrency

“如果您能感觉到计算机的操作每隔几毫秒就会自行切换数十项任务,您肯定会同意计算机似乎在同时执行这些任务,即使我们知道计算机是交错的各种任务的计算”

  • M.Ben-Ari,并发编程原理,1982 年。

那么在单核 CPU 上,一个原子操作不可能与同一系统中的另一个原子操作同时执行?

最佳答案

是的,单核 CPU 可以同时执行多个操作。例如,奔腾处理器有多个同时运行的流水线。一个可能正在做一个加法,而另一个正在从内存中加载。当然,您无法观察同时操作的效果。

此外,像 Pentium 4 这样的架构是单核的,但可以有超线程。这意味着单个内核中的不同流水线不仅可以同时执行指令,而且这些操作可以用于不同的线程。换句话说,CPU 可以在同一个时钟周期内为不同的线程发出指令。

关于concurrency - 单核 CPU 能否实现真正的并发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19695962/

相关文章:

Python从URL高效下载图像

java - 在java中,如果一个线程在wait()之前调用notify(),这如何不会导致第二个线程在第一个线程进入等待状态之前进入阻塞状态?

java - 当 System.out.println 出现在临界区时,多个线程显示异常值

Java ConcurrentHashMap 初始化

concurrency - 招聘经理希望开发人员理解哪些并发编程概念?

c# - 消费者线程如何将结果返回给正确的生产者线程?

java - 当 Java 小程序的多个实例写入服务器上的同一个文件时,如何避免出现错误

java - 如何测试接受命令行参数的并发 Java 程序?

concurrency - 为什么parallelStream 使用的是ForkJoinPool,而不是普通的线程池?

go - 变量赋值是原子的吗?