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

    Problemi di ripetizione codice in java

    Salve
    sto modificando un codice e vorrei il vostro aiuto per quanto concerne i tread;

    In pratica subito dopo il objSync.ReadRegister devo eseguire una chiamata a objSync.Exectrova() (vedi parte nuovo codice inserito da me), ma mi succede che nel try questa parte mi viene ripetutata almeno 5 volte per via delle sincronizazzioni, come mai ? Come posso ovviare all'inconveniente e gestirla solo una volta al passaggio nella while ?

    codice:
     
    public void run ()
        {
    
            while(true)
            {
                
                try
                {
     
                    // non c'era protocol come parametro
                   objSync.ReadRegister(unitid, protocol, ref,funzione, count, repeat,tipo_registro);
                    // 
      
                }
                catch (Exception e)
                {
                    objSync.TraceErr("Errore transizione - Thread " + t.getName());
                }
    
                        
                
                try
                {
                   // Nuovo Codice 
    
                    System.out.println("INIZIO CHIAMATA"); 
                    objSync.Exectrova();
                    System.out.println("FINE CHIAMATA");  
    
                  // Fine nuovo Codice
                    
                    this.t.sleep(600000);
                                               
                }
                catch(java.lang.InterruptedException ex)
                {
                    objSync.TraceErr("Errore sleep Thread " + t.getName());
                }
    
             }
    
        }

  2. #2

    Re: Problemi di ripetizione codice in java

    Originariamente inviato da Marcolino21
    Salve
    sto modificando un codice e vorrei il vostro aiuto per quanto concerne i tread;

    In pratica subito dopo il objSync.ReadRegister devo eseguire una chiamata a objSync.Exectrova() (vedi parte nuovo codice inserito da me), ma mi succede che nel try questa parte mi viene ripetutata almeno 5 volte per via delle sincronizazzioni, come mai ? Come posso ovviare all'inconveniente e gestirla solo una volta al passaggio nella while ?

    codice:
     
    public void run ()
        {
    
            while(true)
            {
                
                try
                {
     
                    // non c'era protocol come parametro
                   objSync.ReadRegister(unitid, protocol, ref,funzione, count, repeat,tipo_registro);
                    // 
      
                }
                catch (Exception e)
                {
                    objSync.TraceErr("Errore transizione - Thread " + t.getName());
                }
    
                        
                
                try
                {
                   // Nuovo Codice 
    
                    System.out.println("INIZIO CHIAMATA"); 
                    objSync.Exectrova();
                    System.out.println("FINE CHIAMATA");  
    
                  // Fine nuovo Codice
                    
                    this.t.sleep(600000);
                                               
                }
                catch(java.lang.InterruptedException ex)
                {
                    objSync.TraceErr("Errore sleep Thread " + t.getName());
                }
    
             }
    
        }
    In pratica mi ripete 5 volte per quanti sono i Thread, non è che il problema è legato alla chiamata Exectrova() che è nella classe objSync ? Nessuno mi sa aiutare ?
    Grazie

  3. #3
    E' ovvio che quella chiamata ti venga effettuata per ogni thread che instanzi è proprio il metodo run viene eseguito da tutti i thread
    Ora bisogna vedere come tale metodo debba essere richiamato e questo lo sai solo tu dato che ne il codice ne l'intervento dice che cosa fa tale metodo.

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.