You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Kopier koden og test den i Eclipse. Man vil raskt se at selv om alle taxiene "kjører" 4 km, utføres ikke koden fullstendig for hver taxi før den neste får starte. Taxiene "sover" også en tilfeldig tid mellom hver km, så det er ikke gitt at den som starter først, kommer fram først. 

Taxi-threads
public class Taxi extends Thread {
	
	public static int instances;
	private int taxinr;  
	
	public Taxi() {
		taxinr = Taxi.instances++;
	}
	
	public void run() {
		
		int initialwait = (int) (Math.random()*1000);
		int tempwait;
		
		try {
			Thread.sleep(initialwait);
		} catch (InterruptedException e1) {
			// nix
		}
	
		for (int i = 1; i < 5 ; i++) {
			
			System.out.println("Taxi " + taxinr + " has drived " + i + " km");
		
			tempwait = (int) (Math.random()*1000);
			
			try {
				Thread.sleep(tempwait);
			} catch (InterruptedException e) {
				// nix 
			}
		}
	}
	
	public static void main(String[] args) {
		
		for (int i = 0; i < 5; i++) {
			(new Taxi()).start();			
		}
	}
}
  • No labels