Java Swing Layout Manager Event Handling Inner Classes Swing Applet Exceptions Threads![]() Multitasking & Multithreading![]() What is a Thread![]() Sequential Flow of Control![]() Life Cycle of a Thread![]() Subclassing Thread![]() Controlling Thread![]() Implementating Runnable![]() When to Use the Runnable Interface![]() Multithreading Example![]() Pre-emptive Scheduling![]() Synchronization (Consumer/Producer)![]() The Producer![]() The Consumer![]() Testing![]() Mutual Exclusion ![]() Exercise![]() Deadlock Java I/O Network Programming Resources | The ConsumerThe BufferReader class /** * @author jack */ public class BufferReader extends Thread { private MessageBuffer buffer; BufferReader(MessageBuffer b) { buffer = b; } public void run() { int cnt = 0; while (true) { int i = buffer.get(); if (i < 0) break; if (cnt++ >= 10) { System.out.println(""); cnt = 1; } System.out.print(i + ","); } System.out.println(""); } } |