多语言展示
当前在线:1352今日阅读:82今日分享:48

线程和执行器之间的区别是什么?

本片介绍java5中引入的并发框架
工具/原料
1

IntelliJ IDEA

2

jdk1.8

方法/步骤
1

在 java 5 中引入,并发框架提供了一组用于处理并发代码的类, 帮助您使用 java 的线程模型。

2

在 java 中创建运行线程是一项昂贵的操作, 操作系统可能会在任何时候限制提供给正在运行的应用程序的线程数。通过使用线程池, 可以在需要时创建线程, 并且可以在线程完成运行以前的代码后重用线程, 而不是创建新线程。

3

值得庆幸的是, java 的并发框架为常见用例提供了一组线程池, 并且可以为您自己的需要扩展这些线程池。下图显示了一个示例,

4

创建和启动线程的样板代码已被删除;这将在缓存的线程池的执行器实例中处理。

5

Executor 类是并行计算的抽象。它允许以托管方式运行并发代码。接口有一个方法, void execute(Runnable).。任何实现都可以管理运行特定可运行的线程。

6

您应该看到上述代码的输出记录了来自三个不同线程的行。缓存的线程池管理这些线程的创建。

7

实际上, Executors.newCachedThreadPool 不返回执行器, 而是返回执行器或服务。ExecutorService的主要优点是并行计算可以返回结果, 这与执行器不同, 后者的运行程序具有 void 返回类型。与上例中的Executor不同,ExecutorService也有关闭的能力。事实上, 上述例子中的代码并没有终止。下图显示了如何使用ExecutorService的示例。

推荐信息