我有一个高度多线程的程序,它包含一个侵入性的对象链接列表。我需要将此列表中的对象传递给多个线程,但一次只有 1 个线程拥有该对象,这意味着我不需要共享该对象或指向它的指针。
我想使用 boost 创建一个带有 unique_ptr 的侵入性列表,但从我读过的内容来看,unique_ptr 与 Boost 侵入式库不兼容,因为它没有正确的所有权语义。
根据这个,侵入式库要求它的元素(指针)具有与原始指针相同的所有权语义。所以 unique_ptr 甚至 shared_ptr 都不符合条件。
我想知道是否有人可以就如何最好地实现我的侵入式列表给我一些建议,以便我可以安全地通过多个线程传递它的元素并知道它们被移动到该线程而不是在线程之间共享?