////////////////////////////////////////////////////////////////////////// // // // CSE 428, Spring 2001, code for HW 4 // // File A4_code.java // // // ////////////////////////////////////////////////////////////////////////// // // // Please compile and run the program under Unix (javac, java) // // Please don't modify this code. // // // ////////////////////////////////////////////////////////////////////////// import Scheduler; // Main program public class A4_code { public static void main(String[] args) { Scheduler s = new Scheduler(4); // Schedule 4 tasks: 0, 1, 2, 3 Agent mario = new Agent("Mario",0,s); // Mario performs task 0 Agent luigi = new Agent("Luigi",0,s); // Luigi performs task 0 Agent ariel = new Agent("Ariel",1,s); // Ariel performs task 1 Agent beppe = new Agent("Beppe",2,s); // Beppe performs task 2 Agent piera = new Agent("Piera",2,s); // Piera performs task 2 Agent carlo = new Agent("Carlo",3,s); // Carlo performs task 3 mario.start(); luigi.start(); ariel.start(); beppe.start(); piera.start(); carlo.start(); } } ////////////////////////////////////////////////////////////////////////// // Definition of agents class Agent extends Thread { private String name; private int taskNumber; private Scheduler s; public Agent(String name, int n, Scheduler s) { this.name = name; this.taskNumber = n; this.s = s; } public void run() { try { for(;;) { s.requestPermissionToStart(name,taskNumber); sleep((long)(java.lang.Math.random()*1000)); // Perform task s.notifyEndOfTask(name,taskNumber); sleep((long)(java.lang.Math.random()*1000)); // Rest before starting task again } } catch (InterruptedException e) { return; } } } //////////////////////////////////////////////////////////////////////////