Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

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. 

Code Block
languagejava
titleTaxi-threads
linenumberstrue
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);
		
		try {
			Thread.sleep(initialwait);
		} catch (InterruptedException e1) {
			// nix
		}
	
		for (int i = 1; i < 5 ; i++) {
			
			System.out.println("Taxi " + taxinr + " has drived " + i + " km");
		
			int 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();			
		}
	}
}