1

I previously asked a question about persistent data structures here. After that I came across an article that introduced persistent data structures. I have got a question on the following figure from the same article, where it describes how to implement a persistent linked list:

enter image description here

The author says:

Inserting a new item into a persistent singly linked list will not alter the existing list but create a new version with the item inserted into it. Instead of copying the entire list and then inserting the item into the copy, a better strategy is to reuse as much of the old list as possible.

Since the two versions (Red and Yellow + Red) have common nodes (specifically, the last three Red nodes), how can one access these two versions simultaneously, for example in a multithreaded application?

gpuguy
  • 1,819
  • 3
  • 22
  • 32

1 Answers1

4

Such list is intended to be immutable - the shared nodes will never be written to. There is no problem with several threads reading from the same memory location.

Karolis JuodelÄ—
  • 3,697
  • 16
  • 18