顾乔芝士网

持续更新的前后端开发技术栈

Java多线程教程:如何创建和启动线程

Java中的多线程允许多个线程并发运行,从而能够同时执行多个任务。线程是程序中的轻量级 进程,它们共享相同的内存空间。本指南将介绍在Java中使用两种主要方法创建和启动线程的基础知识:扩展Thread类和实现Runnable接口。

目录

  1. 1. 线程简介
  2. 2. 通过扩展Thread类创建线程
  3. 3. 通过实现Runnable接口创建线程
  4. 4. 使用Lambda表达式创建线程
  5. 5. 常用线程方法
  6. 6. 示例程序
  7. 7. 结论

1. 线程简介

线程是可以与其他线程并发运行的轻量级进程。Java通过java.lang.Thread类和java.lang.Runnable接口提供了对多线程的内置支持。多线程可以通过更好地利用系统资源来提高 应用程序的性能。

2. 通过扩展Thread类创建线程

在Java中创建线程的一种方法是扩展Thread类并覆盖其run方法。

示例:

class MyThread extends Thread {

@Override

public void run() {

System.out.println("线程正在运行。");

}

public static void main(String[] args) {

MyThread thread = new MyThread(); // 创建一个线程对象

thread.start(); // 启动线程

}

}

解释:

  • o MyThread类扩展了Thread类。
  • o run方法包含将由线程执行的代码。
  • o 在main方法中,创建了一个MyThread对象,并调用start方法来启动线程。

3. 通过实现Runnable接口创建线程

在Java中创建线程的另一种方法是实现Runnable接口,并将实现类的实例传递给Thread对象。

示例:

class MyRunnable implements Runnable {

@Override

public void run() {

System.out.println("线程正在运行。");

}

public static void main(String[] args) {

MyRunnable myRunnable = new MyRunnable(); // 创建一个可运行对象

Thread thread = new Thread(myRunnable); // 将可运行对象传递给Thread对象

thread.start(); // 启动线程

}

}

解释:

  • o MyRunnable类实现了Runnable接口。
  • o run方法包含将由线程执行的代码。
  • o 在main方法中,创建了一个MyRunnable对象,将其传递给Thread对象,并调用start方法来启动线程。

4. 使用Lambda表达式创建线程

从Java 8开始,您可以使用Lambda表达式以更简洁的方式创建线程。

示例:

public class LambdaThreadExample {

public static void main(String[] args) {

Runnable task = () -> System.out.println("线程正在运行。");

Thread thread = new Thread(task);

thread.start();

}

}

解释:

  • o Lambda表达式用于定义Runnable接口的run方法。
  • o Lambda表达式被传递给Thread对象,并调用start方法来启动线程。

5. 常用线程方法

  • o start():启动线程的执行。run方法由 Java虚拟机(JVM)调用。
  • o run():包含将由线程执行的代码。此方法由线程的start方法调用。
  • o sleep(long millis):暂停当前线程的执行指定的毫秒数。
  • o join():等待线程终止。此方法用于确保一个线程在另一个线程开始之前完成其执行。
  • o isAlive():如果线程仍在运行或未终止,则返回true

6. 示例程序

示例1:扩展Thread

class MyThread extends Thread {

@Override

public void run() {

for (int i = 0; i < 5; i++) {

System.out.println("线程运行中:" + i);

}

}

public static void main(String[] args) {

MyThread thread = new MyThread();

thread.start();

}

}

示例2:实现Runnable接口

class MyRunnable implements Runnable {

@Override

public void run() {

for (int i = 0; i < 5; i++) {

System.out.println("线程运行中:" + i);

}

}

public static void main(String[] args) {

MyRunnable myRunnable = new MyRunnable();

Thread thread = new Thread(myRunnable);

thread.start();

}

}

示例3:使用Lambda表达式

public class LambdaThreadExample {

public static void main(String[] args) {

Runnable task = () -> {

for (int i = 0; i < 5; i++) {

System.out.println("线程运行中:" + i);

}

};

Thread thread = new Thread(task);

thread.start();

}

}

7. 结论

在Java中创建和启动线程可以通过多种方法完成,包括扩展Thread类、实现Runnable接口以及使用Lambda表达式。每种方法都有其特定的用例和优势。了解这些方法和常见的线程操作可以帮助您在Java 应用程序中有效地利用多线程。

更多关于Java多线程教程可点击系列专栏:
https://java.didispace.com/java-multithreading/

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言