Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: [JAVA] super.run()

  1. #1

    [JAVA] super.run()

    Ho trovato questa istruzione in un esempio e volevo capire come stanno le cose. a cosa serve? ho letto che richiama dei metodi della superclasse. In che senso?

    Se nel metodo run() metto un while (true) "frulla" all'infinito. Ottengo lo stesso risultato se uso super.run() senza il ciclo infinito? A me compilando sembra di sì anzi ottengo una gestione migliore degli errori. Mi sapete dare delle informazioni più precise?

    ps: mi scuso x non aver cercato eventuali info su google ma sto navigando a 28 k ((
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  2. #2
    Ma a quale superclasse ti riferisci?
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  3. #3
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    con super.run() invochi l'esecuzione del metodo run che è stato definito nella superclasse di quella corrente.

    Il secondo qusito non l'ho capito...while (true) ti crea un ciclo infinito e non andrebbe usato..se vuoi mettere in pausa il thread corrente eistono metodi appositi per farlo in modo da non tenere inutilmente occupata la cpu.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  4. #4
    ho letto così su una guida. la classe che ha run() è una extends Thread. Non so dirti altro.
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  5. #5
    mmm...non serve invocare il metodo run di un thread visto che ottieni lo stesso risultato di creando un oggetto della classe che estende la classe thread e poi utilizzando il metodo .start();

    In effetti un ciclo infinito non ha molto senso, se vuoi mettere in pausa un thread esiste il metodo wait() che appunto blocca il thread che lo esegue. Per poi risvegliarlo devi usare un notifyAll().
    Il tutto ovviamente in un try catch...su un esempio concreto forse è più semplice da capire...

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  6. #6
    il concetto è questo. Volevo sapere se i due metodi sono equivalenti è x un esempio che ho letto e volevo capirci ogni riga:


    public void run(){

    while (true){

    ... accetta connessioni e fai tutto quello che deve fare

    }
    }


    public void run(){

    ... accetta connessioni e fai tutto quello che deve fare

    super.run()

    }

    chiedevo xké nn capivo questa istruzione buttata là!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  7. #7
    Nel primo caso il ciclo è infinito per ovvi motivi del while...il secondo se non ho capito male è anchesso un ciclo infinito (se mi sbaglio ditemelo) perchè il metodo richiama ricorsivamente se stesso...presumo sia questo cmq penso che siano sostanzialmente la stessa cosa o cmq di solito io utilizzo il primo metodo cioè un bel while e via... :master:

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  8. #8
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da Matteo982
    Nel primo caso il ciclo è infinito per ovvi motivi del while...il secondo se non ho capito male è anchesso un ciclo infinito (se mi sbaglio ditemelo) perchè il metodo richiama ricorsivamente se stesso...presumo sia questo cmq penso che siano sostanzialmente la stessa cosa o cmq di solito io utilizzo il primo metodo cioè un bel while e via... :master:

    Ciao.
    Non è ricorsivo perchè non richiama se stesso ma richiama il metodo della superclasse...

    Quanto a Nunkij non capisco quale sia il problema...super serve tra le atre cose a invocare metodi della superclasse aventi lo stesso nome e che altrimenti sarebbero "oscurati" da quelli della sottoclasse e non potrebbero essere riferiti. Nell'esempio il metodo run della sottoclasse semplicemente richiama quello della superclasse...non è un esempio significativo, probabilmente staileggendo un tutorial sui thread in cui nel primo esempio il nuovo thread non fa nulla di particolare; negli esempi concreti ridefinisci il metodo run per fargli fare qualcosa

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  9. #9
    un mix di informazioni...cmq vero...tu ti ridefinisci il tuo metodo run poi crei un oggetto della tua classe e vai di metodo star()

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  10. #10
    quello che voglio capire è che il metodo run che viene invocato è quello della superclasse che estende thread giusto? quindi è lo stesso che io ho ridefinito nella mia classe. E cioè quello che alla fine chiama super.run().

    ho capito bene?
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

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.