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

    Problema velocità trhead

    Salve ho un problema con i thread. In partica un thread deve scaricarmi un file da un server il quale in seguito deve essere letto come segue
    final String nomeFile=ParametriConnessione.getFileXml();
    final String proxFeed="proxFeed.txt";

    connessione.download(nomeFile, proxFeed);
    Scanner input=new Scanner(file);
    numero=input.nextInt();
    input.close();
    File temp = new File("temp.txt");
    FileOutputStream appFeed = new FileOutputStream(temp);
    PrintStream scriviTemp = new PrintStream(appFeed);
    scriviTemp.print(numero+1);
    scriviTemp.close();
    connessione.upload("temp.txt", proxFeed);
    temp.delete();
    Uno dei thread che parte è connessione.download(nomeFile, proxFeed);
    Come faccio a far partire l'apertura e lettura del file dopo che il download sia finito?
    Se voglio inserire uno sleep per il codice che contiene la chiamata di download come faccio?
    Vorrei inserirlo poichè lo scanner non trova il file che intanto si sta scaricando.
    Aspetto vostre notizie.
    Vivi e lascia vivere!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Ma se le operazioni successive devono essere svolte in maniera seriale rispetto al thread dopo che questo ha lavorato, che senso ha il multithreading qua?
    Per la sleep cmq il comando e' Thread.sleep(), ma prende come parametro un valore temporale, quindi non credo che ti aiuti.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    230
    " Se voglio inserire uno sleep per il codice che contiene la chiamata di download come faccio?
    Vorrei inserirlo poichè lo scanner non trova il file che intanto si sta scaricando."


    effetivamente ha ragione simo hai bisogno di un tempo che di certo non convine stimare.
    Io ti consiglio di crearti un semaforo per accesso in mutua esclusione sulla risorsa "file" con i metodi wait e notify non dovresti impiegarci molto.
    il tuo problema assomiglia a quello classico del produttore e del consumatore:
    lo scanner è il consumatore il quale non può leggere prima che non sisa stato depositato un messaggio nel buffer cioè il file sia pronto.

    Il threead che effettua il download invece è il produttore il cui vincolo nella teoria è non produrre fintatno che il buffer è pieno, non so se nel tuo caso hai questo vincolo
    Ciao

  4. #4

    eliminato il multithread

    HO RISOLTO!
    In effetti i thread qui non erano indispensabili, pertanto ho creato un ulteriore metodo di download che non utilizzasse i thread.
    Vi ringrazio
    Vivi e lascia vivere!

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.