2012-12-09 29 views
0

作爲對JVM STM框架的一些分析的一部分,我正在考慮重新設計一個開源庫的鎖定機制來代替使用STM。 然後,我會運行一些測試來比較性能,易於編碼等。Java:重新設計開源庫的併發

顯然,性能測試將不得不支持STM的樂觀鎖定,但可以計算出後面的語義。

但是,現在,我只是對開放源碼庫候選人感興趣。想到的是EhCache,因爲它具有內部鎖定措施。

還有什麼可能是合適的候選人?

回答

1

我會假設,STM

  • 產生更優雅的代碼,但
  • 它比合理使用鎖的要慢得多。它的速度可能會比寫單線程代碼慢,而且沒有鎖。

注意:STM重新鎖定可能會陷入像死鎖那樣的情況,它永遠不會獲得所需的所有鎖。

您很可能會發現,STM太不成熟,無法提供性能優勢。

+0

可能,但我的分析將是2 STM技術的比較,所以我期待找到一個不平凡的方式來實現STM,然後測試。需要比傳統銀行轉賬示例更高級的東西 – DJ180

+0

您應該找到一個實際上使用多個線程更快的示例。例如經典的銀行轉賬示例只有一個線程會更快,因爲鎖定比其執行的操作要昂貴得多。併發性的關鍵在於提高性能,而不是使其更復雜,速度更慢。 –

+0

一個簡單的例子是什麼時候多線程更快是大的矩陣乘法,但我懷疑這是使用STM的好主意。 ;) –