Capitolo 9. Prestazioni del threading e della sincronizzazione
Questo lavoro è stato tradotto utilizzando l'AI. Siamo lieti di ricevere il tuo feedback e i tuoi commenti: translation-feedback@oreilly.com
Fin dai suoi esordi, Java ha esercitato un certo fascino grazie alla sua capacità di essere multithread. Anche nei tempi in cui i sistemi multicore e multi-CPU erano la norma, la possibilità di scrivere facilmente programmi con thread in Java è stata considerata una delle sue caratteristiche principali.
In termini di prestazioni, l'attrattiva è ovvia: se sono disponibili due CPU, un'applicazione potrebbe essere in grado di svolgere il doppio del lavoro o la stessa quantità di lavoro due volte più velocemente. Questo presuppone che il compito possa essere suddiviso in segmenti discreti, poiché Java non è un linguaggio autoparallelizzante che si occupa delle parti algoritmiche. Fortunatamente, oggi l'informatica è spesso costituita da compiti discreti: un server che gestisce richieste simultanee da client discreti, un lavoro batch che esegue la stessa operazione su una serie di dati, algoritmi matematici che si suddividono in parti costitutive e così via.
Questo capitolo spiega come ottenere le massime prestazioni dalle strutture di threading e sincronizzazione di Java.
Filettatura e hardware
Ricordiamo la discussione del Capitolo 1 sui sistemi multicore e sui sistemi hyper-thread. Il threading a livello software ci permette di sfruttare i core multipli e gli hyper-thread di una ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access