2012-04-03 80 views
5

我想使用Java方法:R untime.getRuntime().availableProcessors()並將結果保存在整數變量中。所以Clojure中Clojure中的處理器數量? Java interop

我這樣做:

(def n-cpu ((.availableProcessors (Runtime/getRuntime)))) 

這:

(def n-cpu (Integer/parseInt ((.availableProcessors (Runtime/getRuntime))))) 

但沒有工作。

有什麼建議嗎?

回答

15

如果更換您的版本整數這個方法調用,這是你在邏輯上有:

(def n-cpu (4)) 

的Clojure不能處理列表(4)因爲在一個不帶引號的列表中的第一項必須是一個功能。在這種情況下,第一項是一個整數,而Clojure不把整數當作函數。如果刪除不必要的括號,你的VAR的定義是這樣的:

(def n-cpu (.availableProcessors (Runtime/getRuntime))) 

注意如何,如果你有一個整數替換方法調用,它成爲(def n-cpu 4)

+0

再次感謝您的幫助! – nuvio 2012-04-03 19:00:17