class MessageBuffer
private Queue msgs
synchronized void send(Object o)
msgs.put(o)
notify()
synchronized Object receive()
while (msgs.size() < 1) wait()
return msgs.get()
class BufferedThread
extends Thread
private MessageBuffer msgs
BufferedThread(MessageBuffer m)
msgs m
void send(Object msg)
msgs.send(msg)
class Worker
implements Runnable
final MessageBuffer msgs
Worker(MessageBuffer msgs)
this.msgs = msgs
void run()
while true
msg = msgs.receive()
// work on msg
class ActiveMessage ActiveRunnable runMe // other data for Runnable
class ActiveRunnable
implements Runnable
private final ActiveMessage myHome
ActiveRunnable(ActiveMessage msg)
myHome = msg
void run()
// work on myHome.data
ActiveMsg msg = (ActiveMsg) msgs.receive() (new Thread(msg.runMe)).start()
class ThreadExecutor
implements Runnable
void run()
loop
msg = msgs.receive()
msg.runMe.run()
This page last modified on 29 July 2003.