JAVA ThreadPoolExecutor 如何控制线程重复?

发布于 2021-11-15 07:38:27 字数 516 浏览 911 评论 5

想用ThreadPoolExecutor管理线程,假如一个线程扔进线程池了,再次往线程池里面放的时候能否判断一下上一次的线程执行完毕?

因为之前没用线程池,再次运行时可根据 Thread.getAllStackTraces(); 判断出来(每个线程分配一个名字),换成线程池就不知道怎么搞了。

麻烦哥几个指点一下,多谢了先。

代码如下:

ThreadPoolExecutor pool = new ThreadPoolExecutor(2, 4, 3, TimeUnit.SECONDS, 
    new ArrayBlockingQueue(3), 
    new ThreadPoolExecutor.DiscardOldestPolicy());
String threadname = "aihuichuanshuo";
MyThreadPoolTask task = new MyThreadPoolTask(threadname);
pool.execute(task);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

带上头具痛哭 2021-11-15 19:25:40

引用来自#4楼“heguangdong”的帖子

引用来自#3楼“KINSEY”的帖子

引用来自#2楼“heguangdong”的帖子

FutureTask future = new FutureTask(thread,null);

把future塞给线程池execute

 future.done()判断线程是否完成。

奢华的一滴泪 2021-11-15 18:03:05

相当的给力

哑剧 2021-11-15 16:47:29

引用来自#3楼“KINSEY”的帖子

引用来自#2楼“heguangdong”的帖子

FutureTask future = new FutureTask(thread,null);

把future塞给线程池execute

 future.done()判断线程是否完成。

冷清清 2021-11-15 15:35:44

引用来自#2楼“heguangdong”的帖子

FutureTask future = new FutureTask(thread,null);

把future塞给线程池execute

 future.done()判断线程是否完成。

凡尘雨 2021-11-15 15:18:14

FutureTask future = new FutureTask(thread,null);

把future塞给线程池execute

 future.done()判断线程是否完成。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文