在写程序的时候,见到一个蛮巧妙的思路(一写者,多读者):
维持两块内存,A1、A2,代表同一个对象
假如一开始读A1,那么就写A2,写完以后置一个标志位,让读写者倒换,也即之后的读者就读A2了,而写者写A1。
有人见过类似的思路吗?它是否有一个名字?
我想了很久,只觉得它很类似read-copy-update,但RCU在用户态用起来好像有点麻烦。不知道有没有更方便的实现?
维持两块内存,A1、A2,代表同一个对象
假如一开始读A1,那么就写A2,写完以后置一个标志位,让读写者倒换,也即之后的读者就读A2了,而写者写A1。
有人见过类似的思路吗?它是否有一个名字?
我想了很久,只觉得它很类似read-copy-update,但RCU在用户态用起来好像有点麻烦。不知道有没有更方便的实现?