2012-11-10 29 views
3

我'試圖通過崖港high_scale_lib點擊
http://sourceforge.net/projects/high-scale-lib/
到C#,但有一些Java類,我無法找到C#相當於它像移植併發的Java類,C#

AtomicLongFieldUpdater 

和java中的sun.misc.Unsafe類型與c#或IntPtr中的指針是一樣的嗎?
和我的最後一個問題是所有的java對象都是可空的?

+2

'sun.misc.Unsafe'不是一個指針,是的,所有非原始的Java值都可以設置爲'null'。 – Vulcan

+1

要明確一點:任何使用'sun.misc.Unsafe'的東西都不是可移植的Java,所以肯定會做其他事情,這會讓你的端口不順暢。只要閱讀現有的想法代碼並在慣用的C#中編寫一個新的實現,就會更好。 –

回答

2

閱讀代碼後,我甚至更強烈建議不要嘗試直接移植它。所寫的代碼對Java內部的事物確實是瘋狂的事情,試圖擠出稀薄的性能邊緣。等效的C#代碼可能執行得不好,或者可能需要不同的技術來實現相同的結果。基本上來說:如果你還不完全明白Java代碼在做什麼以及它爲什麼這樣做(我自己並沒有聲稱理解它),那麼你可能沒有資格試圖使用不同的內存模型和不同的併發保證,將其移植到不同平臺上的不同語言。