1
1
为了能够调整数组的大小,同时保持无锁进程保证,您将需要使用操作描述符。一旦开始调整大小,添加一个描述符,它包含对旧数组和新数组的引用。 在任何操作(添加、搜索或删除)中:
现在的问题是,您将有一个线程来验证移动是否完成,这样您就可以删除描述符并释放旧数组。为了维护锁自由度,您需要让所有活动线程都尝试执行此验证,因此这将变得非常昂贵。
|
a a · 为什么在这个可重入锁示例中需要引用计数? 2 年前 |
Grant · goroutines有高空闲唤醒电话 2 年前 |
hoaz · 如何安全地清理并发映射 6 年前 |
Alanpatchi · int基元类型的volatile声明 6 年前 |