Java中的I / O优先级

时间:2009-07-25 11:36:55

标签: java io

我想使用I/O prioritization的Vista +功能。是否有一种独立于平台的方法来设置Java中的操作(例如,Java 7中的库)的I / O优先级,还是应该恢复为睡眠过滤器或JNx解决方案?其他平台有类似的功能吗?

3 个答案:

答案 0 :(得分:3)

如果您确实需要使用此功能并且您确实希望在Java中执行此操作,则可以始终使用Java JNI将JVM挂钩到您自己的I / O处理程序的自定义C / C ++实现中。它允许您编写本机(特定于操作系统)的代码并从Java应用程序中调用它。

答案 1 :(得分:2)

从Google搜索来看,Java似乎还不支持IO优先级。

Windows Vista有,但我对此一无所知。是每个过程还是更细粒度的?

Linux 2.6.13支持ionice(1),它将在每个进程的基础上设置IO优先级。

答案 2 :(得分:2)

这是Java难以支持的事情,因为它在很大程度上取决于底层操作系统的功能。 Java非常努力地提供跨多平台工作的API。 (它并不总是成功,但这是一个不同的主题。)

在这种情况下,Java API需要跨多个版本的Windows,多个版本的Linux,Solaris和各种其他第三方平台实现。提出可以映射到OS平台系列功能的独立于平台的IO优先级模型将很难。

对于现在,我建议你寻找一个超出Java的平台特定解决方案来进行必要的调整调整;例如使用Process等运行外部命令,或者在启动JVM之前在包装器脚本中完成工作。