Tipo di dati stack
Il tipo di dati stack rappresenta un frammento della memoria ad accesso casuale (RAM), allocato per ogni thread di esecuzione.
Il funzionamento dello stack è definito dal principio LIFO (Last In, First Out). L'essenza di questo principio è che l'ultimo frammento di memoria aggiunto allo stack sarà il primo ad esserne rimosso.
L'essenza del lavoro con lo stack consiste nel fatto che, quando viene dichiarata una nuova variabile all'interno di una funzione, questa viene aggiunta allo stack. Quando la funzione termina la sua esecuzione, la variabile viene automaticamente rimossa dalla memoria dello stack e la parte che occupava diventa disponibile per altri oggetti.
Il principale vantaggio dello stack è l'alta velocità di esecuzione del codice, tuttavia lo svantaggio consiste nel fatto che quando la memoria allocata per lo stack si esaurisce, le variabili dichiarate non potranno più essere modificate e l'esecuzione del codice si interromperà. La dimensione dello stack viene impostata alla creazione del thread, e ogni variabile ha una sua dimensione massima di memoria, che dipende primariamente dal suo tipo di dati. Per questo motivo è necessario dichiarare in anticipo la dimensione dei tipi di dati complessi (ad esempio, gli oggetti). Inoltre, lo stack può contenere in memoria solo variabili locali; per quelle globali è necessario utilizzare l'heap.
Vedi anche
-
tipo di dati heap,
ampiamente utilizzato nella programmazione -
rete per la distribuzione dei contenuti
CDN,
che accelera il caricamento delle pagine delle applicazioni web -
metodo di organizzazione dei dati
LIFO,
ampiamente utilizzato nella programmazione -
metodo di organizzazione dei dati
FIFO,
ampiamente utilizzato nella programmazione