Videogiochi: arriva la generazione multicore

Videogiochi: arriva la generazione multicore

Con l'avvento delle CPU multicore gli sviluppatori hanno dovuto rivedere seriamente i propri processi di sviluppo, ma adesso sembrano intravvedersi i risultati di questa transizione.

di pubblicata il , alle 13:38 nel canale Videogames
 
42 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
mjordan13 Aprile 2007, 11:55 #41
Originariamente inviato da: Motosauro
Ah, ecco
Pensavo di essere io a non aver trovato il tastone con scritto "Rendilo Parallelo" in eclipse ....
invece mi pare d'aver capito che in sostanza tocca continuare a spaccarsi la testa (oddio, io sono ancora ben lontano dall'aver bisogno di implementare un vero parallelismo, ma la cosa m'ingrifa)


In Java sostanzialmente il multithreading è gestito da entrambi (programmazione e VM) rispetto a soluzioni molto a piu' basso livello come ad esempio i Posix Threads. La parola chiave synchronized, i blocchi , le operazioni atomiche piu' tutte le utility incluse nel package java.util.concurrent rendono la programmazione multi thread sostanzialmente piu' semplice che l'usare i thread nativi nudi e crudi. Per esempio, sempre in Java (visto che parliamo di Java) i sincronizzatori e gli esecutori sono supporti importantissimi che in altre realtà differenti da Java devono essere implementati "a mano". Senza parlare delle collection concorrenti... Comunque rimane sempre una parte gestita dalla programmazione. Gestito dalla VM perchè in fondo il modo di fare programmazione multithread in Java è comunque un'astrazione di piu' alto livello dei thread nativi della macchina su cui eseguiamo il programma. Infatti un programma Java multithread utilizza alla fine i Posix Threads nel caso di sistemi Unix e i Win32 Threads nel caso di Windows.
^TiGeRShArK^13 Aprile 2007, 12:12 #42
Originariamente inviato da: mjordan
In Java sostanzialmente il multithreading è gestito da entrambi (programmazione e VM) rispetto a soluzioni molto a piu' basso livello come ad esempio i Posix Threads. La parola chiave synchronized, i blocchi , le operazioni atomiche piu' tutte le utility incluse nel package java.util.concurrent rendono la programmazione multi thread sostanzialmente piu' semplice che l'usare i thread nativi nudi e crudi. Per esempio, sempre in Java (visto che parliamo di Java) i sincronizzatori e gli esecutori sono supporti importantissimi che in altre realtà differenti da Java devono essere implementati "a mano". Senza parlare delle collection concorrenti... Comunque rimane sempre una parte gestita dalla programmazione. Gestito dalla VM perchè in fondo il modo di fare programmazione multithread in Java è comunque un'astrazione di piu' alto livello dei thread nativi della macchina su cui eseguiamo il programma. Infatti un programma Java multithread utilizza alla fine i Posix Threads nel caso di sistemi Unix e i Win32 Threads nel caso di Windows.

Si è ovvio che è gestito tutto a livello di vm.
Già a far partire un banalissimo "hello world" la VM instanzia 10 thread: uno per il programma e 9 di sistema (GC, dispatcher...ecc...).
Questi thread però comprendono anche l'agente necessario a monitorare la virtual machine e penso che 4 o 5 siano dedicati ad esso.
Cmq alla fine tocca al programmatore usare a fondo gli strumenti messi a disposizione per rendere il suo programma multi-threaded.
La VM aiuta solo in rare occasioni (ad esempio il thread del dispatcher dell'AWT è separato dal main thread) ma cmq occorre lanciare i componenti grafici che richiedono delle elaborazioni pesanti o sono I/O bounded in un thread diverso.
In Java 6 è stato anche introdotto un altro strumento per aiutare il programmatore nella gestione dei thread dedicati ad oggetti di GUI: SwingWorker.
Cmq ricordiamo che i giochi non sono certo fatti in java, e con i costrutti base del c++ gestire i thread è molto + incasinato senza alcuna libreria per la gestione dei thread

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^