2017-08-02 49 views
1

這個問題是關於android.support.v4.util.CircularArrayAndroid SDK的CircularArray線程安全嗎?

我正在尋找使用CircularArray將數據從一個線程提供給另一個線程。每個元素是一個short[]類型的數組。

  • 數組可以安全地添加到並同時彈出嗎?
  • 我可以肯定,當我嘗試彈出一個元素時,它已被原子添加到數組中嗎?
  • 我可以安全地清除特定線程中的數組嗎?

CircularArray文檔沒有說的線程安全的東西,但如果有適用於它的SDK文檔中指定的其他地方一般假設我不知道。

+0

這將幫助您理解「線程安全」和「訪問」數組數據的區別。簡而言之,數組是線程安全的,但您不能保證所讀取的內容是數組中設置的「最新」值。 https://stackoverflow.com/questions/1132507/java-array-thread-safety –

回答

2

如果沒有明確說明,Android平臺的類不是線程安全的。所以你的問題的答案是沒有

您最好使用java.util.concurrent包中的隊列來實現您的線程間通信。

+1

謝謝。看來[ConcurrentLinkedQueue](https://developer.android.com/reference/java/util/concurrent/ConcurrentLinkedQueue.html)就是我要找的。 – orodbhen