2015-06-01 30 views

回答

1

你不能可靠地獲得大小,因爲它邀請的競爭條件。出於同樣的原因,你不會找到empty()方法:在該方法返回一個值時,它將是不相關的,因爲它可能已經改變。

有時lockfree容器提供了一個 「unreliable_size()」 方法(統計/日誌記錄的目的)

這裏的特殊情況是SPSC承擔單一生產商和消費者:

  • size_type read_available() const;

    可以從spsc_queue彈出的可用元素的數量

  • size_type write_available() const;

    GET寫空間寫元素

注意這些只有有效從各自的消費者/生產者線程使用時。