A one writer, multiple readers, shared data table concurrent access process
includes providing a plurality of data elements. The data elements include
a serialization mechanism. A second data element is a table/array of
elements. A third data element is an atomic, integer counter. Inserting a
new element into the shared unsorted data table by a writer includes
locking the table. Removing an element at a position in the shared
unsorted data table by a writer includes locking the table, copying the
table so that the element to be removed is at the end of the table,
deleting the element at the end of the table, and unlocking the table.
From the shared data table by a reader includes looping through all
elements of the table, loading and caching each element of the table, and
read-only processing each element of the table.
Un un produttore, lettori multipli, processo comune di accesso simultaneo della tabella di dati include fornire una pluralità di elementi di dati. Gli elementi di dati includono un meccanismo di pubblicazione periodica. Un secondo elemento di dati è un table/array degli elementi. Un terzo elemento di dati è un atomico, contatore di numero intero. Inserendo un nuovo elemento nella tabella non selezionata comune di dati da un produttore include il bloccaggio della tabella. Rimuovendo un elemento ad una posizione nella tabella non selezionata comune di dati da un produttore include il bloccaggio della tabella, copiante la tabella in modo che l'elemento da rimuovere sia all'estremità della tabella, cancellante l'elemento all'estremità della tabella e sbloccare la tabella. Dai dati comuni la tabella da un lettore include il ciclaggio attraverso tutti gli elementi della tabella, il carico e nascondere dell'ogni elemento della tabella e passivo procedendo ogni elemento della tabella.