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.