Java Reference
In-Depth Information
serverSocket = new ServerSocket(PORT);
catch (IOException e)
System.out.println("\nUnable to set up port!");
//Create a Resource object with
//a starting resource level of 1…
Resource item = new Resource(1);
//Create a Producer thread, passing a reference
//to the Resource object as an argument to the
//thread constructor…
Producer producer = new Producer(item);
//Start the Producer thread running…
//Wait for a client to make connection…
Socket client = serverSocket.accept();
System.out.println("\nNew client accepted.\n");
//Create a ClientThread thread to handle all
//subsequent dialogue with the client, passing
//references to both the client's socket and
//the Resource object…
ClientThread handler =
new ClientThread(client,item);
//Start the ClientThread thread running…
}while (true); //Server will run indefi nitely.
Method addOne of Resource will be called by a Producer object and will
attempt to add one item to the resource level. Method takeOne of Resource will be
called by a ConsumerClient object and will attempt to remove/consume one item.
Both of these methods will return the new resource level. Since each of these meth-
ods will modify the resource level, they must both be declared with the keyword
synchronized .
The code for the Producer class is shown below. As in previous examples, a
randomising feature has been included. This causes the producer to wait 0-5 s
Search WWH ::

Custom Search