closeablethread.java

来自「FMJ(freedom media for java)是java视频开发的新选择」· Java 代码 · 共 60 行

JAVA
60
字号
package com.lti.utils.synchronization;/** * A base class for threads which need to be gracefully closed, since Thread.stop() is * deprecated.  Subclass should check isClosing() in their main loop in run(), and  * call setClosed() when run() completes. *  * @author Ken Larson */public abstract class CloseableThread extends Thread{	protected final SynchronizedBoolean closing = new SynchronizedBoolean(false); 	private final SynchronizedBoolean closed = new SynchronizedBoolean(false); 		/** @deprecated */	public CloseableThread()	{		super();	}	/** @deprecated */	public CloseableThread(String threadName)	{		super(threadName);	}	public CloseableThread(final ThreadGroup group, final String threadName)	{		super(group, threadName);	}	public void close()		{	closing.setValue(true);		interrupt();	}	protected void setClosing()	{		closing.setValue(true);	}	public boolean isClosed()	{	return closed.getValue();	}	public void waitUntilClosed() throws InterruptedException	{	closed.waitUntil(true);	}		/**	 * intended to be checked by thread in its main loop.  break out of the main loop	 * if true.	 */	protected boolean isClosing()	{	return closing.getValue();	}		/**	 * to be called by the thread upon exit.	 */	protected void setClosed()	{	closed.setValue(true);	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?