Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    64

    Java Thread valori di ritorno

    Salve a tutti...

    sto programmando un applicazioni che fà uso di thread per fare dei calcoli a partire da un file da cui estrarre i dati....ogni thread che lancio(per capirci sono tipo una decina) esegue dei conti...a questo punto sarei interessato a fare ritornare il risultato di questo conto al main che invoca i singoli thread, ma non sò come fare e se sia possibile questo è il codice di come è organizzata a grandi linee l'applicazione.
    codice:
    public class ReadToText {
        
        public static void main (String[] args) throws Exception {
            
        new CercaThread("nome1").start();
        new CercaThread("nome2").start();
        
       
        
                }
      
        }
    
        class CercaThread extends Thread{
            
        public CercaThread (String nome){
        super (nome);
    
        }
        @Override
        public void run(){
             
            try
                {.....
                    //conti
    
                }    
                catch (Exception err) {err.printStackTrace();}
            }
            
            
        }
    alla fine dei conti io memorizzo in una variabile il risultato come faccio a farlo ritornare al main?

  2. #2
    Sostanzialmente ci sono due modi per "prelevare" informazioni da un thread. O al costruttore ci passi la tua variabile "condivisa" e poi la vai a leggere nel main o dove vuoi (altresì puoi avere una variabile di istanza nel thread e un metodo getter)...ovviamente facendo così devi aspettare la terminazione del thread....cioè devi sincronizzare i due thread (considera il main un thread)

    Altrimenti, al posto dell'interfaccia Runnable usi la nuova Callable che fa si che il thread restituisca un valore. Qui trovi la documentazione:

    http://java.sun.com/j2se/1.5.0/docs/.../Callable.html

    Spero di non aver detto troppe fesserie, Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    64
    Originariamente inviato da hurricane86
    Sostanzialmente ci sono due modi per "prelevare" informazioni da un thread. O al costruttore ci passi la tua variabile "condivisa" e poi la vai a leggere nel main o dove vuoi (altresì puoi avere una variabile di istanza nel thread e un metodo getter)...ovviamente facendo così devi aspettare la terminazione del thread....cioè devi sincronizzare i due thread (considera il main un thread)

    Altrimenti, al posto dell'interfaccia Runnable usi la nuova Callable che fa si che il thread restituisca un valore. Qui trovi la documentazione:

    http://java.sun.com/j2se/1.5.0/docs/.../Callable.html

    Spero di non aver detto troppe fesserie, Ciao
    Ho provato a dare un occhio ma non sono molto pratico...se qualcun potesse darmi un esempio pratico o un indicazione di massima sui passi da fare gliene sarei grato perchè detto cosi ho poche idee su come muovermi...

  4. #4
    Codice PHP:
    class Calcolatore    implements Callable<Integer>    {        
    //...
            
    Integer call()
            {
                
    //...
                
    return risultato;
            }
            
    //...

    Nel main:

    Codice PHP:

    ExecutorService esecutore 
    Executors.newCachedThreadPool();

    Future<Integeresecutore.submit(new Calcolatore());

    System.out.println("Risultato: " f.get());

    esecutore.shutdown(); 
    Per il tipo di dato future:

    http://java.sun.com/j2se/1.5.0/docs/...nt/Future.html

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.