上下文切换时间

时间:2013-04-02 10:32:46

标签: java multithreading

我有以下场景,我打算知道何时可以进行上下文切换。

场景1:java线程在对象上调用了wait,但该线程的时间片仍然存在。

场景2: - java线程正在等待数据库查询的结果,但该线程的时间片仍然存在。

场景3: - java线程正在等待数据库查询的结果,但该线程的时间片仍然完成。

场景4:-Java线程正在进行一些计算,但该线程的时间片仍然完成。

在上下文切换中可能发生的任何其他情况,但我错过了它?

我正在考虑使用这些场景来确定线程池大小是否可以大于Runtime.getRuntime.availableProcessors() 感谢

1 个答案:

答案 0 :(得分:1)

如果某个帖子正在做某事,例如调用wait(),这意味着时间片没有用完。如果线程因调用wait()而被阻塞,或等待I / O结果(包括数据库结果),则不计算时间片。一旦线程解除阻塞并继续执行,它就会开始计数。如果时间片耗尽,这意味着该线程一直在运行并且没有以任何方式被阻止。

因此,您的方案分类不正确。