JAVA THREAD STATES exits start() runnable run() method VO new sleep() is new I/O available dead blocked
JAVA THREAD STATES
JJAVA THREADS-PRODUCER- CONSUMER public class Factory public Factory(){ /First create the message buffer. Channel mailBox new MessageQueue(); /Create the producer and consumer threads and pass /each thread a reference to the mailBox object. Thread producerThread new Thread( new Producer(mailBox)); Thread consumerThread new Thread( new Consumer(mailBox)); /Start the threads. producerThread.start(); consumerThread.start(); public static void main(String args[]){ Factory server new Factory(); }
JAVA THREADS - PRODUCERCONSUMER
JJAVA THREADS-PRODUCER- CONSUMER class Producer implements Runnable private Channel mbox; public Producer(Channel mbox){ this.mboxmbox; } public void run(){ Date message; while (true){ /nap for awhile SleepUtilities.nap(); /produce an item and enter it into the buffer message new Date(); System.out.println("Producer produced "message); mbox.send(message);
JAVA THREADS - PRODUCERCONSUMER
JAVA THREADS-PRODUCER- CONSUMER class Consumer implements Runnable private Channel mbox; public Consumer(Channel mbox){ this.mboxmbox; public void run(){ Date message; while (true){ /nap for awhile SleepUtilities.nap(); /consume an item from the buffer message =(Date)mbox.receive(); if (message !null) System.out.println("Consumer consumed "message);
JAVA THREADS - PRODUCERCONSUMER
THREADING ISSUES o Semantics of fork(and exec(system calls o Thread cancellation o Signal handling o Thread pools o Thread specific data o Scheduler activations
THREADING ISSUES Semantics of fork() and exec() system calls Thread cancellation Signal handling Thread pools Thread specific data Scheduler activations