Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Perchè tutte le applicazioni sono multithread?

    Salve,

    per creare un thread o si eredita la classe Thread o si implementa l'interfaccia Runnable.
    Ho letto che tutte le applicazioni sono Multithread anche se io non implemento nulla di particolare, perché?
    Forse l'interfaccia Runnable viene implementata di default?

    Grazie dell'attenzione,
    Matteo.
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Perchè tutte le applicazioni sono multithread?

    Originariamente inviato da matthew80
    per creare un thread o si eredita la classe Thread o si implementa l'interfaccia Runnable.
    Ok.

    Originariamente inviato da matthew80
    Ho letto che tutte le applicazioni sono Multithread anche se io non implemento nulla di particolare, perché?
    Non è che "tutte" le applicazioni sono multi-thread .... dipende. Quando lanci una applicazione Java, il main() viene invocato nel contesto di quello che si chiama "main thread". Cosa poi faccia la applicazione per quanto riguarda l'uso e la creazione dei thread ... sono affari suoi.

    Puoi benissimo fare una applicazione "console" che usa sempre e solo il "main thread". Se sviluppi una applicazione Swing abbastanza complessa che deve fare operazioni lunghe in background, allora certamente sarà multi-thread.

    Se ti è capitato di vedere dei miei esempi di codice qui sul forum, avrai visto che nel main metto sempre un qualcosa del tipo:

    codice:
    public static void main (String[] args) {
        SwingUtilities.invokeLater (new Runnable () {
            public void run () {
                ... qui creo la finestra ....
            }
        });
    }
    In questo caso il "main thread" dura pochissimo e finisce praticamente subito. E si limita solo a chiedere che venga eseguito qualcosa nel contesto del EDT (event dispatch thread). Se la applicazione Swing è semplice si può fare tutto nel contesto del EDT. Quando avviene un evento si è nel contesto del EDT ... si fa qualcosa di veloce e si ritorna. Se invece si dovessero fare operazioni lunghe a seguito di qualche evento, allora si deve creare un nuovo thread per eseguire il lavoro lungo.

    Insomma .... dipende.

    Originariamente inviato da matthew80
    Forse l'interfaccia Runnable viene implementata di default?
    No di certo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.