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 + -
显示快捷键?