反正有找出在Windows上的Java时间片吗?

MEU*_*ULT 2 java time multithreading

我知道jvm时间片至少在Windows上是线程。无论如何,我可以找出默认时间片是什么,还是更改时间片?

我考虑过的一种方法是编写自己的循环调度程序,并以高优先级级别将其作为线程运行,并使其控制所有其他线程。那行得通吗?

Ste*_*n C 5

实际上,除非您使用的是使用“绿色线程”的JVM,否则最终将由操作系统来进行线程时间分片和线程调度。如果需要修改调度等行为,请先查看操作系统提供的用于执行此操作的工具。

我考虑过的一种方法是编写自己的循环调度程序,并以高优先级级别将其作为线程运行,并使其控制所有其他线程。那行得通吗?

没有任何保证。这取决于操作系统的线程调度程序对线程优先级更改的响应程度。

这种方法的其他问题(调整线程优先级)是:

  • 这将不可避免地使您的应用程序在调度程序和实际(黑盒)线程调度程序之间的交互方面更具平台特定性,
  • 真的很难知道您的调度程序是否有效地工作,并且
  • 它将使跟踪应用程序中的“ heisenbug”变得更加困难。

您为什么认为有必要这样做?