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

    Differenze tra la classe Thread e l'interfaccia Runnable

    Salve a tutti,
    vorrei capire che differenza c'è nello realizzare un thread, estendendo la classe Thread o implementando l'interfaccia Runnable.
    Ho letto da qualche parte che è più raccomandabile utilizzare il secondo metodo, cioè implements Runnable, ma non riesco a darmene una spiegazione: magari, in questo modo, si possono creare più Thread?
    Grazie a chi mi risponderà.
    Buona giornata a tutti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da SereSere91 Visualizza il messaggio
    vorrei capire che differenza c'è nello realizzare un thread, estendendo la classe Thread o implementando l'interfaccia Runnable.
    La differenza è tecnica ma anche e soprattutto concettuale. Una classe la estendi per specializzare il suo comportamento. Per poter fare qualcosa di più e/o di diverso.
    Se estendi Thread solo per ridefinire run(), NON stai cambiando la logica di funzionamento e il ciclo di vita del thread (cosa che non è possibile). Stai semplicemente facendo fare un "lavoro" al thread.
    Quindi l'estensione di Thread è concettualmente meno buona.

    Quote Originariamente inviata da SereSere91 Visualizza il messaggio
    Ho letto da qualche parte che è più raccomandabile utilizzare il secondo metodo, cioè implements Runnable
    Sì, infatti.

    Quote Originariamente inviata da SereSere91 Visualizza il messaggio
    ma non riesco a darmene una spiegazione: magari, in questo modo, si possono creare più Thread?
    No, alla fin fine hai comunque bisogno di istanziare un Thread, anche se implementi Runnable.
    Il motivo l'ho detto prima. Ma ce n'è anche un altro. Runnable è una interfaccia, quindi la puoi implementare in qualunque classe di qualunque gerarchia. Potresti avere una classe MyFrame extends JFrame implements Runnable
    Con Thread non sarebbe possibile, visto che MyFrame già estende JFrame.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Grazie mille, ho capito tutto! Grazie grazie

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.