import java.util.concurrent.ThreadPoolExecutor; //导入方法依赖的package包/类

/**

* purge removes cancelled tasks from the queue

*/

public void testPurge() throws InterruptedException {

final CountDownLatch threadStarted = new CountDownLatch(1);

final CountDownLatch done = new CountDownLatch(1);

final BlockingQueue q = new ArrayBlockingQueue<>(10);

final ThreadPoolExecutor p =

new ThreadPoolExecutor(1, 1,

LONG_DELAY_MS, MILLISECONDS,

q);

try (PoolCleaner cleaner = cleaner(p, done)) {

FutureTask[] tasks = new FutureTask[5];

for (int i = 0; i < tasks.length; i++) {

Callable task = new CheckedCallable() {

public Boolean realCall() throws InterruptedException {

threadStarted.countDown();

await(done);

return Boolean.TRUE;

}};

tasks[i] = new FutureTask(task);

p.execute(tasks[i]);

}

await(threadStarted);

assertEquals(tasks.length, p.getTaskCount());

assertEquals(tasks.length - 1, q.size());

assertEquals(1L, p.getActiveCount());

assertEquals(0L, p.getCompletedTaskCount());

tasks[4].cancel(true);

tasks[3].cancel(false);

p.purge();

assertEquals(tasks.length - 3, q.size());

assertEquals(tasks.length - 2, p.getTaskCount());

p.purge(); // Nothing to do

assertEquals(tasks.length - 3, q.size());

assertEquals(tasks.length - 2, p.getTaskCount());

}

}

java purge_Java ThreadPoolExecutor.purge方法代码示例相关推荐

  1. java kryo_Kryo框架使用方法代码示例

    Kryo框架的source已移至https://github.com/EsotericSoftware/kryo ,进入此页面,然后点击右边的Download Zip按钮,就能下载到最新版本的Kryo ...

  2. java readtimeout_Java HttpURLConnection.getReadTimeout方法代码示例

    import java.net.HttpURLConnection; //导入方法依赖的package包/类 /** * 得到响应对象 * * @param urlConnection * @retu ...

  3. java invalidate_Java Component.invalidate方法代码示例

    import java.awt.Component; //导入方法依赖的package包/类 /** Installs the component we will embed to display t ...

  4. java hasmoreelements_Java IOException.hasMoreElements方法代码示例

    import java.io.IOException; //导入方法依赖的package包/类 /** * fileName���� ���� package �������� ������ ���� ...

  5. java methode_Java Method.getTypeParameters方法代码示例

    import java.lang.reflect.Method; //导入方法依赖的package包/类 private void validateRuleMethod(MethodRuleDefin ...

  6. java setmethod_Java Operation.setJavaMethod方法代码示例

    import com.sun.tools.internal.ws.processor.model.Operation; //导入方法依赖的package包/类 private void createJ ...

  7. java cancel_Java RunnableFuture.cancel方法代码示例

    import java.util.concurrent.RunnableFuture; //导入方法依赖的package包/类 @Test public void testSnapshotAsyncC ...

  8. java getevent_Java ActionEvent.getWhen方法代码示例

    import java.awt.event.ActionEvent; //导入方法依赖的package包/类 @Override final public void actionPerformed(A ...

  9. java deepcopy_Java JsonNode.deepCopy方法代码示例

    import com.fasterxml.jackson.databind.JsonNode; //导入方法依赖的package包/类 /** * Applies this schema rule t ...

最新文章

  1. wp_terms分类信息表—WordPress数据库研究(2.6.2版本)#8
  2. SpringBoot配置Druid
  3. Lisp尺寸标注增加前后缀_汽车雨刷器也是有尺寸的,那具体的尺寸该如何分辨呢?...
  4. sqlite3数据库最大可以是多大?可以存放多少数据?读写性能怎么样?详述
  5. word中取消自动目录超链接的方法
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的生活质量衡量系统
  7. Java™ 教程(原子变量)
  8. Go语言的goroutine
  9. CocoStudio 的使用
  10. Hamcrest 精萃
  11. Android 手势密码解锁 指纹解锁 展示
  12. 艺术创作六步法则、浅谈色彩、如何理解漫画
  13. 利用PyG实现社区检测经典算法ClusterNet
  14. 269个JavaScript工具函数
  15. ElasticSearch 23 种映射参数详解
  16. 苹果手机投影_没有无线网络的情况下手机无线投屏投影仪
  17. 圣诞节要来了,程序员女友用Python画圣诞树的浪漫代码作为最好的礼物
  18. 神兽传说1 java_神兽传说RPG
  19. 最大进程线程数 连接数
  20. CUMT 1031 Order

热门文章

  1. 5分钟使用markdown画流程图
  2. GWAS分析-常用文件格式
  3. 前端不暴露ak/sk直接上传阿里云oss的方案
  4. SpringBoot JPA配置多数据源(同类型库)教程
  5. 印度理工学院射频集成电路设计之共栅 LNA
  6. Axure教程:一个通用的app注册/登录页
  7. 将mp3文件转换成单通道16K wav文件
  8. 你不知道的搜索引擎之高效率搜索
  9. js 遍历对象属性,赋值/添加进另一个对象中
  10. html 内容不换行,css如何设置div内容不换行?