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