All pastes #967727 Raw Edit

Sistemi

public java v1 · immutable
·published 2008-04-02 16:39 UTC
rendered paste body
import java.util.ArrayList;import java.util.Scanner;public class Scheduler {    public static void main (String[] args) {        TQueue tq = new TQueue();        EventGenerator eg = new EventGenerator(tq);        EventManager em = new EventManager(tq);        eg.start();        em.start();    } // main} // Schedulerclass EventManager extends Thread {    private TQueue tq;    private int clock;        public EventManager (TQueue tq0) {        tq = tq0;        clock = 0;    } // EventManager        public void run () {        Evt ev;        while (clock < 1000) {            while ((ev = tq.getOlderPastEvent(clock)) != null)                System.out.println("Time="+clock+"\nEvent:\n"+ev);             try {                sleep (5000);            }            catch (InterruptedException e) {                System.out.println(e);            }            clock++;        } // while    } // run} // EventManagerclass EventGenerator extends Thread {    private TQueue tq;        public EventGenerator (TQueue tq0) {        tq = tq0;    } // EventGenerator        public void run () {        int time;        String description;        //tq.insertEvent(new Evt(2000, "Start"));        while (true) {            Scanner in = new Scanner(System.in);            System.out.println("Inserire l'istante di tempo.\n");            time = in.nextInt();            System.out.println("Inserire la descrizione.\n");            in.nextLine();            description = new String(in.nextLine());            tq.insertEvent(new Evt(time,description));        } // while    } // run} // EventGeneratorclass TQueue {    private ArrayList<Evt> queue;        public TQueue () {        queue = new ArrayList<Evt>();    } // TQueue        public synchronized void insertEvent (Evt ev) {        queue.add(ev);        return;    } // insert        public synchronized Evt getOlderPastEvent (int time) {        int iOlder = 0;        for (int i = 1; i < queue.size(); i++)            if (queue.get(i).getTime() < queue.get(iOlder).getTime())                iOlder = i;        if (queue.size() != 0 && queue.get(iOlder).getTime() <= time)            return queue.remove(iOlder);        else            return null;    } // getOlderEventIndex    } // TQueueclass Evt {    private int time;    private String description;           public Evt (int time0, String description0) {        time = time0;        description = description0;    } // Evt        public String getDescription () {        return description;    } // getDescription        public int getTime () {        return time;    } // getTime        public String toString () {        return getClass().getName()+"[time="+time+", description="+description+"]";    } // toString} // Evt