可运行(runnable)和线(thread)的区别

正在执行的程序称为进程。该流程可分为多个子流程。例如,microsoftword就是一个进程。同时,它检查拼写错误和语法。这是一个子流程。这些子流程称为线程。多线程处理是同时执行多个线程的过程。线程化应用程序可以使用不同的编程语言构建。Runnable和Thread与Java编程相关联。Java中有两种方法通过实现可运行接口或扩展thread类来创建线程。在实现Runnable时,许多线程可以共享...

关键区别–可运行与线程

正在执行的程序称为进程。该流程可分为多个子流程。例如,microsoftword就是一个进程。同时,它检查拼写错误和语法。这是一个子流程。这些子流程称为线程。多线程处理是同时执行多个线程的过程。线程化应用程序可以使用不同的编程语言构建。Runnable和Thread与Java编程相关联。Java中有两种方法通过实现可运行接口或扩展thread类来创建线程。在实现Runnable时,许多线程可以共享同一个线程对象,而在扩展thread类时,每个线程都有一个与之关联的唯一对象。这就是Runnable和Thread之间的关键区别。

目录

1. 概述和主要区别
2. 什么是可运行的
3. 什么是线
4. Runnable和Thread之间的相似性
5. 并排比较-表格形式的可运行与线程
6. 摘要

什么是可运行(runnable)?

一根线穿过一些状态。“新”是线程生命周期的开始。在start()方法调用新线程后,它将变为可运行的。如果线程调度程序选择了正在运行的线程,则该线程将选择该状态。如果该线程正在等待另一个线程执行任务,则该线程正在等待该状态。线程完成工作后,将进入终止状态。

可以使用可运行的接口实现可运行线程。参考以下程序。

可运行(runnable)和线(thread)的区别

图01:使用可运行接口创建线程的Java程序

根据上述程序,Runnable Demo类实现了Runnable接口。run()方法位于实现可运行接口的类中。它是线程的入口点。逻辑在run()方法中。在主程序中,线程是通过定义一个从可运行的Demo类实例化的对象来创建的。是t1。start()方法是使用t1调用的。

参考以下程序。

可运行(runnable)和线(thread)的区别

图02:Java程序通过实现可运行接口创建线程来执行循环

根据上面的例子,类Runnable Demo实现了Runnable接口。使用线程执行的逻辑是用run()方法编写的。在主程序中,线程是通过定义一个从可运行的Demo类实例化的对象来创建的。是t1。然后,使用t1调用start()方法。

什么是线(thread)?

另一种创建线程的方法是扩展thread类。它包括三个步骤。首先是将类声明为Thread类的扩展。然后,应该编写run()方法。它具有线程应该执行的步骤序列。最后,创建thread对象,并调用start()方法来启动线程的执行。参考以下程序。

可运行(runnable)和线(thread)的区别

图03:扩展线程类的Java程序

根据上面的程序,MyThread类扩展了Thread类。它重写run方法。run()方法包含线程要执行的逻辑。它是线程的入口点。然后创建线程对象。它是线程1。线程是使用start()方法启动的。它将执行对run()方法的调用。

下面是扩展Thread类的两个类的示例程序。

可运行(runnable)和线(thread)的区别

图04:带有两个类的Java程序扩展了Thread类

根据上面的程序,A类和B类都在扩展线程类。这两个类都有run()方法的实现。主线程执行main()方法。在主线程死之前,它创建并启动thread1和thread2。当主线程到达main方法的末尾时,三个线程正在并行运行。线程没有给出输出的具体顺序。一旦线程启动,就很难决定它们将执行的顺序。它们独立运行。

可运行(runnable)和线(thread)的共同点

  • 它们都是用Java创建线程的。

可运行(runnable)和线(thread)的区别

可运行vs线程
Runnable是Java中的一个接口,用于创建一个允许多个线程共享同一个线程对象的线程。 thread是Java中的一个类,用于创建一个线程,其中每个线程都有一个与之关联的唯一对象。
记忆
在Runnable中,多个线程共享同一个对象,因此需要较少的内存。 在线程类中,每个线程创建一个唯一的对象,因此需要更多内存。
扩展能力
在实现可运行接口之后,它可以扩展一个类。 Java不支持多个继承。在扩展Thread类之后,它不能扩展任何其他类。
代码可维护性
可运行接口使代码更易于维护。 在线程类中,维护非常耗时。

总结 - 可运行(runnable) vs. 线(thread)

一个流程被分成多个子流程来同时执行多个任务。这些子流程称为线程。实例化线程可以通过实现可运行接口或扩展thread类来完成。它是一个面向对象的程序设计,但不是一个很容易扩展的类。在实现Runnable时,许多线程可以共享同一个线程对象,而在扩展thread类时,每个线程都有一个与之关联的唯一对象。这就是Runnable和Thread之间的区别。在线程类中创建多个对象会消耗更多内存。

下载runnable vs thread的pdf

你可以下载这篇文章的PDF版本,并按照引文说明离线使用。请在这里下载PDF版本的Runnable和Thread的区别

引用

  • 发表于 2020-10-19 19:23
  • 阅读 ( 186 )
  • 分类:IT

你可能感兴趣的文章

十字绣(cross stitch)和刺绣(embroidery)的区别

...些基本的针法或技术在刺绣包括链绣,毯子缝,十字绣,运行缝和缎缝。刺绣有两种主要类型,即机绣和手绣。顾名思义,机器刺绣是用缝纫机或刺绣机在织物上**图案,而手工刺绣则是用针和线在织物上手工**图案。 虽然机绣...

  • 发布于 2020-10-18 15:12
  • 阅读 ( 473 )

睡觉(sleep)和在java中等待(wait in java)的区别

...序中的单一顺序控制流。线程是轻量级的。多线程是同时运行多个线程的机制。Java等编程语言支持多线程。多线程处理有很多优点,因为它允许同时运行多个线程,并且线程之间相互独立。Java中有一些方法可以用于多线程处理...

  • 发布于 2020-10-19 03:04
  • 阅读 ( 270 )

绣花线(embroidery thread)和缝纫线(sewing thread)的区别

绣花线(embroidery thread)和缝纫线(sewing thread)的区别 线是长而细的棉、尼龙或其他用于缝纫的纤维。绣花线和缝纫线是缝纫用的两种线。绣花线和缝纫线的主要区别在于它们的质地;绣花线是用于刺绣的一种特殊类型的线,具有...

  • 发布于 2020-10-26 23:46
  • 阅读 ( 1417 )

过程(process)和线(thread)的区别

...很好的服务,但它们在操作方式上是有区别的。计算机上运行的所有程序都至少使用一个进程或线程。进程和线程允许处理器在共享计算机资源的同时在多个任务之间平滑切换。因此,程序员的职责是以高效的方式使用线程和进...

  • 发布于 2020-10-29 12:02
  • 阅读 ( 208 )

java8lambdas简介

...您需要将任务定义为可运行接口并实现run()方法。这里Runnable是一个函数接口。 ...

  • 发布于 2021-03-12 08:09
  • 阅读 ( 240 )

用java编写多线程代码的4种方法

... 方法2:使用具有runnable的线程实例 ...

  • 发布于 2021-03-14 04:48
  • 阅读 ( 176 )

线程是什么?它对您的智能家居意味着什么?

...用数年而无需更换。线程在ieee802.15.4mac/PHY无线电标准上运行。本标准是6LoWPAN的基础,以低功耗、低成本为经营理念。 ...

  • 发布于 2021-03-28 00:33
  • 阅读 ( 218 )

alienware的新领域51是一个多核怪物与ryzen Thread裂程序或英特尔core x芯片

...处理器。同时,图形卡的范围从单一的Nvidia GTX 1050 Ti,到运行在SLI中的双GTX 1080 Ti卡,一直到运行在AMD Crossfire中的三倍AMD Radeon RX 580。 Threadripper型号将从7月27日开始上市,而Core X变型将在夏季末上市。这两款产品的价格尚...

  • 发布于 2021-05-11 13:53
  • 阅读 ( 128 )

过程(process)和线(thread)的区别

...和数据。堆栈存储函数参数和局部变量等临时数据。堆在运行时为进程动态分配内存。文本部分包含处理器寄存器的内容和程序计数器的值。数据部分包含静态和全局变量。 一个过程要经历几个状态。它们如下。 Figure 2: Process S...

  • 发布于 2021-06-30 18:54
  • 阅读 ( 277 )

超线程(hyper threading)和多线程(multithreading)的区别

...为提高CPU/处理器性能而开发的一种技术。它允许一个CPU运行两个线程。另一方面,多线程是一种允许在一个进程中同时运行多个轻量级线程的机制。每个线程都有自己的程序计数器、堆栈、寄存器等。 覆盖的关键领域 1.什么是...

  • 发布于 2021-07-01 13:13
  • 阅读 ( 567 )
野良神YLSLM
野良神YLSLM

0 篇文章

相关推荐