首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用几个请求终止Java中的线程?

用几个请求终止Java中的线程?
EN

Stack Overflow用户
提问于 2019-07-15 08:56:36
回答 1查看 32关注 0票数 1

假设我在客户端Java应用程序(即Android应用程序)中有一个方法

代码语言:javascript
复制
ExecutorService pool = ExecutorsService.newFixedThreadPool(1); //1 thread in pool

public void makeHTTPRequestVeryVeryCostly() { 
  /* IN A BACKGROUND THREAD */
   CompleteableFuture<String> s = CompleteableFuture.supplyAsync(() -> makeCostlyReq, pool));  
   s.get();
   updateTheUserUIInTheMainUIThread(s); //Update with s
}

button.onClicklistener((b) -> makeHTTPRequestVeryVeryCostly()); // some button in the UI that will make the http request

在愤怒中,用户点击按钮100次,然后100个请求被提交到ThreadPool中。2件糟糕的事情发生了:

(1)代价高昂的请求计算100次

(2)每次返回后,UI刷新100次。

这些都是非常大的问题。在Java中,解决这个问题的方法是什么?最好是在一个成功的请求之后终止线程池中的所有先前请求,该如何做到这一点呢?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57032239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档