2016-03-01 39 views
2

我有一個調用外部二進制文件的java應用程序。這個二進制文件並不十分考慮它所消耗的資源,有時可能會讓我的Java應用程序變慢。在Java的「sandbox」中運行可執行文件

有沒有一種方法可以預先定義資源沙箱,我可以限制這個二進制文件?對於如何防止這個二進制文件干擾我的應用程序,您有任何其他建議嗎?

+0

在單獨的線程中調用外部庫?沒有太多關於你想要做什麼的更多信息,這是我能給出的最佳答案。 –

+0

它目前正從一個單獨的線程中調用。問題在於它是一個龐大的CPU,並且會顯着降低計算機的速度。基本上,我想爲它預先分配一個它可以使用的CPU週期份額,給它自己的內存份額。 –

+0

這似乎不是Java問題。至少在Unix/Linux中,你不能在ulimit後面啓動外部程序嗎?我不確定Windows使用什麼;我猜這是「開始/低」或某些PowerShell調用。 – VGR

回答

2

AFAIK,沒有沒有辦法做到這一點。當然,不是純粹的/便攜式的Java。 (Java沙盒是關於管理不可信代碼可以做什麼的,而不是它可以使用多少資源)。

事實上,我認爲還沒有一種可靠的方法來限制外部進程使用的CPU資源。

我能想到的最接近的就是試圖控制線程(或進程)的優先級;請參閱Thread.setPriority(...)方法。