Java是一门拥有多线程机制的语言,它的多线程编程是Java编程中必须掌握的重要内容,本文将详细讲解Java多线程之线程的创建。
Java是一门拥有多线程机制的语言,它的多线程编程是Java编程中必须掌握的重要内容,本文将详细讲解Java多线程之线程的创建。
线程的创建方式
Java中线程的创建主要有以下两种方式:
继承Thread类
继承Thread类是Java中最基本的一种创建线程的方式,创建一个线程类需要继承Thread类,并重写run方法。在run方法中编写线程需要执行的任务,如下所示:
public class MyThread extends Thread {
@Override
public void run() {
// 编写线程需要执行的任务
}
}
使用该线程类的方式如下:
public class MainClass {
public static void main(String[] args) {
MyThread t = new MyThread();
t.start();
}
}
实现Runnable接口
实现Runnable接口是Java提供的第二种创建线程的方式,与继承Thread类方式相比,实现Runnable接口方式更为灵活。Runnable接口只有一个run方法需要重写,如下所示:
public class MyRunnable implements Runnable {
@Override
public void run() {
// 编写线程需要执行的任务
}
}
使用该线程类的方式如下:
public class MainClass {
public static void main(String[] args) {
MyRunnable r = new MyRunnable();
Thread t = new Thread(r);
t.start();
}
}
线程的实例
示例一
以下示例创建了一个MyThread线程,并启动该线程:
public class MyThread extends Thread {
@Override
public void run() {
System.out.println("线程开始");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程结束");
}
}
public class MainClass {
public static void main(String[] args) {
MyThread t = new MyThread();
t.start();
}
}
在该示例中,线程休眠了5秒钟,期间控制台输出以下信息:
线程开始
线程结束
示例二
以下示例创建了一个MyRunnable线程,并启动该线程:
public class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("线程开始");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程结束");
}
}
public class MainClass {
public static void main(String[] args) {
MyRunnable r = new MyRunnable();
Thread t = new Thread(r);
t.start();
}
}
在该示例中,线程休眠了5秒钟,期间控制台输出以下信息:
线程开始
线程结束
结论
本文详细讲解了Java多线程之线程的创建,介绍了继承Thread类和实现Runnable接口两种方式,同时演示了两个示例并详细讲解了运行过程。掌握这些知识点可为实际工作提供帮助,特别是在多线程并发编程方面。
本文标题为:Java多线程之线程的创建
- SpringBoot2开发从0开始Spring Initailizr初始化 2022-11-20
- 通过FeignClient如何获取文件流steam is close问题 2023-01-09
- springboot框架阿里开源低代码工具LowCodeEngine 2023-01-18
- 如何使用IDEA2022.1 创建Spring Boot项目 2023-03-31
- Spring的@Autowired加到接口上但获取的是实现类的问题 2023-06-06
- java – 在mongodb聚合中查找 2023-11-04
- 详解Spring Hibernate连接oracle数据库的配置 2023-07-31
- springboot如何通过不同的策略动态调用不同的实现类 2022-11-05
- Java JSch远程执行Shell命令的方法 2022-10-30
- Java实现分布式系统限流 2023-04-12