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

    [java] processo da eseguire n volte allo stesso tempo

    ok, suppongo che il titolo confonda un po'. Ció che a me serve é che un determinato task sia eseguito per n volte (dove é chiaramente possibile indicare n) non in maniera consecutiva ma con un inizio ad un tempo predeterminato in comune. Per esempio che ad un certo punto siano eseguiti in parallelo 20 processi System.out.println(); spero di essere stato piú o meno chiaro, grazie in anticipo.
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

  2. #2
    Allora in modo veloce mi viene 1 sola soluzione:
    3 classi
    provatimer
    time che estende TimerTask
    tuothread che estende Thread

    provatimer fa partire ad intervalli regolari time che a sua volta cre n thread di tuo thread che stampa qlc a video.

    ecco il codice:
    provatimer
    codice:
    import java.util.Timer;
    
    public class provatimer {
    	public static void main(String args[]){
    		//System.out.println("CIAO");	
    		time da_ripetere = new time();
    		Timer TimeT = new Timer();
    		TimeT.scheduleAtFixedRate(da_ripetere,0,6000l);	
    	
    	}
    }
    time
    codice:
    import java.util.*;
    
    public class time extends TimerTask{
    	public void run(){
    		int i, n;
    		n = 100;
    		for(i=0; i<n; i++)
    			new tuothread().start();
    	}
    
    }
    tuothread
    codice:
    public class tuothread extends Thread {
    	public void run(){
    		//Qui metti il codice x ogni thread	
    		System.out.println("Funziona!!!");
    	}
    }
    Ora non mi ricordo bene come funziona il metodo scheduleAtFixedRate() quindi ho messo 1 valore di tempo a caso.
    Fammi sapere se ti piace come soluzione

  3. #3
    :metallica: non ero sicuro se scheduleAtFixedRate fosse il metodo giusto da usare, il codice posso anche metterlo al posto di
    new tuothread().start(); o cambierebbe qualcosa?
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

  4. #4
    No! xchè altrimenti non partirebbero i thread in contemporanea(o quasi)!
    Cmq scheduleAtFixedRate chiama l'oggetto della classe time ogni n secondi, non lo chiama 1 volta sola!

  5. #5
    Allora in questo caso se voglio solo far partire piú thread in contemporanea posso anche evitare il timer o sbaglio? Comunque ho risolto, grazie mille!
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

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.