Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Java e multicore

  1. #1
    Utente bannato
    Registrato dal
    Sep 2012
    Messaggi
    465

    Java e multicore

    Sto studiando java ma a singhiozzo perché a volte devo interrompere per qualche settimana e sono ancora all'inizio ma vorrei chiedervi una curiosità che mi affligge da tempo. La intel e l'amd fa sempre processori più potenti con una marea di core però tutti si lamentano che molti software non implementano questa funzionalità. Quando si programma in java esiste qualche metodo che permette di sfruttare meglio i core dei processori oppure ci pensa autonomamente la java virtual machine?

    ciao e grazie

  2. #2
    Se vuoi sfruttare i più core disponibili su una macchina devi progettare il tuo software per lavorare con più thread, cosa che ovviamente Java supporta (ma occhio che lavorare con più thread è spesso un gran casino).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente bannato
    Registrato dal
    Sep 2012
    Messaggi
    465
    Se prendo un processore come questo:

    http://ark.intel.com/it/products/636...up-to-3_80-GHz

    posso suddividere il programma in 12 thread?

    Cosa accade quando lo stesso software viene fatto girare su una cpu con 1 thread solo?

    Grazie, molto interessante!

    P.S.: Più avanti c'è un capitolo che si chiama "Programmazione multithread", potrebbe essere quello il capitolo che mi aiuta a capire?

  4. #4
    Originariamente inviato da peruzzo
    Se prendo un processore come questo:

    http://ark.intel.com/it/products/636...up-to-3_80-GHz

    posso suddividere il programma in 12 thread?
    Non è detto che sia facile e/o sensato. Molti algoritmi sono strettamente sequenziali, e altri, anche se sono parallelizzabili in linea di principio, si complicano molto.
    Cosa accade quando lo stesso software viene fatto girare su una cpu con 1 thread solo?
    I thread vengono fatti girare a turno (questo comunque accade comunque, dato che ci sono normalmente molti più processi - e quindi thread - in esecuzione di quanti core non ci siano). Ovviamente un algoritmo parallelizzato in esecuzione su un singolo core incorre in un certo overhead (dovuto al context switch e/o alle strutture dati aggiuntive necessarie per gestire la concorrenza tra più thread) rispetto alla versione non parallelizzata.
    P.S.: Più avanti c'è un capitolo che si chiama "Programmazione multithread", potrebbe essere quello il capitolo che mi aiuta a capire?
    Sì.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.