第五章 Java 线程示例


线程可以称为轻量级进程。Java 支持多线程,因此它允许您的应用程序同时执行两个或多个任务。

多线程可以发挥优势,尤其是在当今机器具有多个 CPU 的情况下,因此可以同时执行多个任务。它是核心 java 教程中非常重要的一部分。

Thread可以称为light weight process。Java 支持多线程,因此它允许您的应用程序同时执行两个或多个任务。多线程特别有优势,现在机器有多个 CPU,因此可以同时执行多个任务。

每当我们在 java 中调用 main 方法时,它实际上会创建一个主线程。虽然它也创建了其他线程,但这些线程与系统相关,称为守护线程。所以如果我们想创建更多线程来并发执行任务,我们可以使用多线程。

可以通过两种方式创建线程。

  • 通过扩展 Thread 类
  • 通过实现 Runnable 接口

通过扩展 Thread 类:

您可以通过扩展 Thread 类并覆盖 run 方法来创建自己的线程。您需要创建该类的对象,然后在其上调用 start() 方法以将线程作为不同的线程执行。

如下创建一个类 FirstThread.java。

package org.arpit.java2blog.thread;

public class FirstThread extends Thread{

 public void run()
 {
  System.out.println("Thread is running");
 }

}

在上面的程序中,我们通过扩展 Thread 类和覆盖 run 方法创建了自己的线程。

创建名为 ThreadExampleMain.java 的主类

package org.arpit.java2blog.thread;

public class ThreadExampleMain {

 public static void main(String args[])
 {
  FirstThread ft= new FirstThread();
  ft.start();
 }

}

在上面的程序中,我们创建了一个 FirstThread 类的对象并调用 start 方法来执行线程。

当您运行上述程序时,您将获得以下输出。

Thread is running

通过实现 Runnable 接口:

另一种方法是,您需要实现 Runnable 接口并覆盖 public void run() 方法。您需要实例化该类,将创建的对象传递给 Thread 构造函数并在线程对象上调用 start 方法以将线程作为不同的线程执行。 创建一个类 FirthThread.java 如下。

package org.arpit.java2blog.thread;

public class FirstThread implements Runnable{

 public void run()
 {
  System.out.println("Thread is running");
 }

}

在上面的程序中,我们创建了自己的类并实现了 Runnable 接口和重写的 run() 方法。

创建名为 ThreadExampleMain.java 的主类

package org.arpit.java2blog.thread;

public class ThreadExampleMain {

 public static void main(String args[])
 {
  FirstThread ft= new FirstThread();
  Thread t=new Thread(ft);
  t.start();
 }

}

在上面的程序中,我们创建了一个FirstThread类的对象,并将其传递给Thread构造函数并调用start方法来实际执行。start方法最终会调用FirstThread类的run方法。

当您运行上述程序时,您将获得以下输出。

Thread is running

hread 与 Runnable 哪个更好?

由于以下原因,实现Runnable接口被认为是比扩展线程更好的方法。

  • Java 不支持多重继承,因此如果您扩展 Thread 类并且您不能扩展大多数情况下需要的任何其他类。
  • Runnable 接口代表一个任务,这可以在 Thread 类或 Executors 的帮助下执行。
  • 当你使用继承时,是因为你想扩展父类的一些属性,修改或改进类的行为。但是,如果您扩展线程类只是为了创建线程,那么对于面向对象编程可能不推荐这种行为。


原文链接:https://codingdict.com/