Non so molto su come i computer lavorano internamente, quindi non so molto sul multithreading e quando avviene. So che è importante in database o applicazioni web e simili, dove molte macchine diverse provano ad accedere o modificare le stesse risorse, ma per quanto riguarda il codice "classico", come i calcoli?
Ho pensato di usare LinkedList
nel mio codice, ma ho letto che non è thread-safe (C #). Quindi la domanda è se devo anche preoccuparmi.
Il problema concreto è questo: ho una classe Interval
che rappresenta gli intervalli chiusi, internamente archiviati come due valori doppi (limite inferiore e superiore). Ho un metodo che richiede un intervallo I
e un elenco L
di intervalli disgiunti in ordine ascendente. Il metodo modifica L
tale che equivale a unire gli intervalli della lista con I
; l'ordine è conservato.
Esempio:
L is: [-3, 0], [2, 4], [5, 18], [21, 22]
I is: [3, 6]
resulting modified L: [-3, 0], [2, 18], [21, 22]
L'algoritmo trova determinati intervalli di confine (l'intervallo più a sinistra e più a destra di L
che si interseca con I
e gli intervalli accanto a questi due), Remove
s tutti gli intervalli tra di essi e Add
sa nuovo intervallo fra loro. Quindi questo è il posto in cui ho bisogno di sapere se la sicurezza del thread è una cosa qui.
Quindi, come faccio a saperlo?