• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java线程池的应用实例分析

java 搞代码 4年前 (2022-01-05) 33次浏览 已收录 0个评论

这篇文章主要介绍了Java线程池的应用,结合具体实例形式分析了java线程池的斐波那契数列计算与模拟工人做工等应用的操作技巧,需要的朋友可以参考下

本文实例讲述了Java线程池的应用。分享给大家供大家参考,具体如下:

一 使用Future与Callable来计算斐波那契数列

1 代码

 import java.util.concurrent.*; public class FutureCallableDemo { static long fibonacci(long n) { if (n == 1 ||n == 2) return 1; else return fibonacci(n - 1) + fibonacci(n - 2); } public static void main( String[] args) throws Exception { Callable task = () -> fibonacci(30); ExecutorService executor = Executors.newFixedThreadPool(1); Future future = executor.submit(task); System.out.println("计算第10个斐波那契级数,过会来取...") ; while (future.isDone() == false) { System.out.println("忙别的去吧,结果还在计算中...") ; } System.out.printf("计算完毕,第10个斐波那契级数是:%d %n", future.get()) ; } } 

2 运行

计算第10个斐波那契级数,过会来取…
忙别的去吧,结果还在计算中…
忙别的去吧,结果还在计算中…
忙别的去吧,结果还在计算中…
忙别的去吧,结果还在计算中…
忙别的去吧,结果还在计算中…
……
忙别的去吧,结果还在计算中…
计算完毕,第10个斐波那契级数是:832040

二 线程池模拟工人做工

1 代码

 <i style="color:transparent">来源gaodai$ma#com搞$代*码网</i>import java.util.concurrent.Executors; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; class Task implements Runnable { private String name; public Task(String name) { this.name = name; } public String getName() { return name; } @Override public void run() { try { Long duration = (long) (Math.random() * 100); System.out.println("正在做工中,执行者 : " + name); TimeUnit.SECONDS.sleep(duration); } catch (InterruptedException e) { e.printStackTrace(); } } } public class BasicThreadPoolExecutorExample { public static void main(String[] args) { ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newCachedThreadPool(); for (int i = 0; i <= 5; i++) { Task task = new Task("Task " + i); System.out.println("新任务添加成功 : " + task.getName()); executor.execute(task); } executor.shutdown(); } } 

2 运行

新任务添加成功 : Task 0
新任务添加成功 : Task 1
新任务添加成功 : Task 2
新任务添加成功 : Task 3
新任务添加成功 : Task 4
新任务添加成功 : Task 5
正在做工中,执行者 : Task 0
正在做工中,执行者 : Task 3
正在做工中,执行者 : Task 1
正在做工中,执行者 : Task 2
正在做工中,执行者 : Task 4
正在做工中,执行者 : Task 5
 
Process finished with exit code 0

更多java相关内容感兴趣的读者可查看本站专题:《Java进程与线程操作技巧总结》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

以上就是Java线程池的应用实例分析的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java线程池的应用实例分析

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址