📄 messagedriventhread.java
字号:
package com.lti.utils.synchronization;/** * A useful base class for a thread that wishes to simply respond to messages. * * @author Ken Larson */public class MessageDrivenThread extends CloseableThread{ private MessageDrivenThreadListener listener; public MessageDrivenThread(final ThreadGroup group, final String threadName, MessageDrivenThreadListener listener) { super(group, threadName); this.listener = listener; } public MessageDrivenThread(final ThreadGroup group, final String threadName) { super(group, threadName); } public void setListener(MessageDrivenThreadListener listener) { this.listener = listener; } private ProducerConsumerQueue q = new ProducerConsumerQueue(); public void post(Object msg) throws InterruptedException { q.put(msg); } public void run() { try { while (!isClosing()) { Object o = q.get(); doMessageReceived(o); } } catch (InterruptedException e) { } finally { setClosed(); } } /** * subclass should override to do message processing. */ protected void doMessageReceived(Object o) { if (listener != null) listener.onMessage(this, o); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -