messagedriventhread.java
来自「FMJ(freedom media for java)是java视频开发的新选择」· Java 代码 · 共 58 行
JAVA
58 行
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 + =
减小字号Ctrl + -
显示快捷键?