看到《深入理解并发编程:核心原理和实践》p18,上面写了一段话
线程是CPU调度的最小单元
进程上下文的切换要比线程上下文切换慢很多
这个我就不理解了,既然cpu的调度以线程为单位,那么进程不应该存在上下文切换,因为时间片调度就不存在进程。
有没有朋友能解释下,进程是否存在上下文切换?上下文切换的目的是什么?
看到《深入理解并发编程:核心原理和实践》p18,上面写了一段话
线程是CPU调度的最小单元
进程上下文的切换要比线程上下文切换慢很多
这个我就不理解了,既然cpu的调度以线程为单位,那么进程不应该存在上下文切换,因为时间片调度就不存在进程。
有没有朋友能解释下,进程是否存在上下文切换?上下文切换的目的是什么?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
Java 程序在 JVM 中运行,不直接触发上下文切换。但是,底层的 JVM 实现和 Java 程序执行的操作(例如,与文件系统、网络等的交互)可能会导致操作系统层面的上下文切换。
JVM 会通过本地接口(Native Interface,JNI)调用本地代码。本地代码通常是 C 或 C++ 编写,这些本地代码可能与操作系统进行交互,从而可能导致上下文切换。