Java 中 Thread 与 Runnable 接口的区别
Java 中的 Thread
与 Runnable
对 Java 初学者来说一直是一个令人困惑的决定。 与 Runnable 相比,Java 中的 Thread 似乎很容易,因为我们只需处理一个类 java.lang.Thread
而在使用 Runnable 实现 Thread 的情况下,我们需要同时处理 Thread 和 Runnable 两个类。 尽管应考虑 Runnable 和 Thread 之间的差异以及两种方法的优缺点来决定使用 Runnable 还是 Thread。
这也是一个非常流行的线程面试问题,大多数面试官真的很想知道大家在选择 Thread 还是 Runnable 或相反时的观点。
在这篇 Java 文章中,我们将尝试指出 Java 中 Thread 和 Runnable 之间的一些区别,这将帮助大家做出明智的决定。
Java中 Thread 和 Runnable 接口的区别
Java 中 Thread
与 Runnable
之间的区别这里是我的一些想法,关于我应该使用 Thread 还是 Runnable 来实现 Java 中的任务,尽管还有另一种选择作为“Callable”来实现线程,我们将在稍后讨论。
-
Java不支持多重继承,这意味着你只能扩展Java中的一个类,所以一旦你扩展了
Thread
类,你就失去了机会,不能扩展或继承Java中的另一个类。 -
在面向对象编程中,扩展类通常意味着添加新功能、修改或改进行为。 如果我们不对
Thread
进行任何修改,则改用Runnable
接口。 -
Runnable
接口代表一个任务,可以通过普通线程或执行器或任何其他方式执行。 因此,将 Task 逻辑分离为Runnable
而不是Thread
是一个很好的设计决策。 -
将任务分离为
Runnable
意味着我们可以重用任务并且可以自由地以不同的方式执行它。 因为一旦完成就无法重新启动线程。 再次针对一个任务,Runnable vs Thread,Runnable 是赢家。 -
Java 设计者认识到这一点,这就是为什么
Executors
接受 Runnable 作为 Task 并且它们有工作线程来执行这些任务。 - 继承所有 Thread 方法只是为了表示可以使用 Runnable 轻松完成的 Task 的额外开销。
这些是 Java 中 Thread
和 Runnable
之间的一些显着差异。
相关文章
在 Java 中获取文件大小
发布时间:2023/05/01 浏览次数:139 分类:Java
-
Java 提供了不同的方法来获取文件的字节大小。 本教程演示了在 Java 中获取文件大小的不同方法。使用 Java IO 的文件类获取文件大小 Java IO 包的 File 类提供了以字节为单位获取文件大小的功能。
Java 中的文件分隔符
发布时间:2023/05/01 浏览次数:108 分类:Java
-
本篇文章介绍了 Java 中的文件分隔符。Java 中的文件分隔符 文件分隔符是用来分隔目录的字符; 例如,Unix 使用 /,Windows 使用 \ 作为文件分隔符。
Java 中的文件过滤器
发布时间:2023/05/01 浏览次数:193 分类:Java
-
本篇文章介绍如何在 Java 中使用 FileFilter。FileFilter 用于过滤具有特定扩展名的文件。 Java内置包IO和Apache Commons IO为FileFilter提供了类和接口来进行文件过滤操作。
Java 获取 ISO 8601 格式的当前时间戳
发布时间:2023/05/01 浏览次数:132 分类:Java
-
本篇文章介绍了 ISO 8601 日期格式、其重要性及其在 Java 中的使用。 它还列出了一些优点来强调为什么应该使用 ISO 格式来表示日期。
在 Java 中获取数组的子集
发布时间:2023/05/01 浏览次数:142 分类:Java
-
本篇文章介绍了几种在 Java 中获取数组子集的方法。使用 Arrays.copyOf() 方法获取数组的子集 使用 Arrays.copyOfRange() 方法获取数组的子集
用 Java 填充二维数组
发布时间:2023/05/01 浏览次数:110 分类:Java
-
二维数组是基于表结构的,即行和列,填充二维数组不能通过简单的添加到数组操作来完成。 本篇文章介绍如何在 Java 中填充二维数组。
计算 Java 数组中的重复元素
发布时间:2023/05/01 浏览次数:202 分类:Java
-
本篇文章介绍Java计算数组中重复元素的方法。计算 Java 数组中的重复元素。我们可以创建一个程序来计算数组中的重复元素。 该数组可以是未排序的,也可以是已排序的。
Java 中 List 和 Arraylist 的区别
发布时间:2023/05/01 浏览次数:90 分类:Java
-
表示为单个单元的一组单个对象称为集合。 在 Java 中,Collection 是一个具有多个已定义接口和类的框架,用于将一组对象表示为一个单元。 它允许我们操纵