我只想澄清我对多线程overheads.In的概念,这是我在第11章第11.1节中阅读的Brian etz的一本java书“”。
虽然目标可能是提高整体性能,但与单线程方法相比,使用多线程总是会带来一些性能成本。这包括与线程之间的协调相关的开销(锁定、信令、同步)、增加上下文切换、线程创建和删除以及调度开销。
为什么他要将上下文切换开销和调度开销分开。线程调度开销与上下文切换开销不相同。我对这两个概念都很困惑。
发布于 2016-01-02 11:54:01
简单地说:
上下文切换意味着在您的进程中,一个线程将进入等待/休眠状态,而另一个线程将进入运行状态,即开始执行。这意味着存储进入等待状态的线程的当前状态,并检索其他线程当前状态,以便从进入等待状态的点开始执行该线程。
调度开销意味着一旦线程进入可运行状态(准备执行),OS会将其重新安排为处理器之一以及它可能需要的资源。
https://stackoverflow.com/questions/34565541
复制相似问题