我有一個高度多線程的程序,它包含一個入侵鏈接的對象列表。我需要將這個列表中的對象傳遞給多個線程,但是一次只有一個線程擁有這個對象,這意味着我不需要這個對象或指向它的指針被共享。unique_ptrs的入侵列表?
我想用unique_ptr創建一個使用boost的入侵列表,但是從我讀過的內容來看,unique_ptr不會與Boost入侵庫兼容,因爲它沒有正確的所有權語義。
根據this侵入庫要求它的元素(指針)與原始指針具有相同的所有權語義。所以unique_ptr或者甚至shared_ptr都不合格。
我想知道是否有人可以給我一些關於如何最好地實現我的入侵列表的建議,然後我可以安全地通過幾個線程傳遞它的元素,並知道他們正在被移動到該線程,而不是在線程之間共享?
我沒有得到的是爲什麼對你來說*對象的*指針只能從一個線程引用是很重要的。 (它們不是,因爲它至少是來自侵入式容器*和*每個智能指針。) – 2010-10-07 10:38:10
我只是認爲從線程安全的角度來看它會更好,因爲如果只有一個線程有一個參考,不會有線程安全問題。看起來很明顯,我沒有考慮清單本身... – 2010-10-07 11:42:54