概述: Java语言内置了多线程支持,当Java程序启动的时候,实际上是启动了一个JVM进程,然后JVM启动主线程来执行 main()方法,在main()方法中我们可以又启动其他线程,每个线程的任务就是执行一段顺序执行的代码,Java使用线程执行体来容纳这段代码。 在Java中,用Thread类代表线程,所有线程对象,都必须是Thread类或者Thread类子类的实例 多线程的创建方式有三种,但是今天我只介绍两种经常用的方式: 第一种创建方式: 继承Thread类,并重写run()方法 第一步:继承java.lang.thread; 第二步:重写run方法 Java语言的多线程特性使得程序能够同时执行多个任务,提高了效率和响应性。在Java中,创建线程主要有三种方式:继承Thread类、实现Runnable接口以及使用ExecutorService和Future,但在这里,我们主要讨论前两种常用的方式。 **第一种方式:继承Thread类** 在Java中,`Thread`类是所有线程的基础。要通过继承`Thread`类来创建线程,首先需要创建一个类去继承`Thread`,然后重写它的`run()`方法。`run()`方法包含了线程要执行的代码。以下是一个简单的例子: ```java public class ThreadTest01 { public static void main(String[] args) { // 创建线程 Thread t = new Processor(); // 启动线程 t.start(); // 主线程继续执行 for (int i = 0; i < 10; i++) { System.out.println("主线程:" + i); } } } class Processor extends Thread { @Override public void run() { // 线程执行的代码 for (int i = 0; i < 10; i++) { System.out.println("Processor线程:" + i); } } } ``` 在这个例子中,`Processor`类继承了`Thread`,并重写了`run()`方法。`start()`方法启动线程,而`run()`方法中的代码会在新线程中运行。注意,`start()`方法调用后,主线程会继续执行,不会等待`run()`方法完成。 **第二种方式:实现Runnable接口** 另一种创建线程的方法是实现`Runnable`接口。这种方式允许类不被`Thread`类限制,可以继承其他类。步骤如下: 1. 定义一个类实现`Runnable`接口。 2. 实现`Runnable`接口中的`run()`方法,放入线程要执行的代码。 3. 创建`Thread`对象,并传入实现`Runnable`接口的实例。 4. 调用`Thread`对象的`start()`方法启动线程。 示例代码如下: ```java public class ThreadTest { public static void main(String[] args) { // 创建Runnable实例 Runnable processor = new Processor(); // 创建Thread并传入Runnable实例 Thread t = new Thread(processor); // 启动线程 t.start(); // 主线程继续执行 for (int i = 0; i < 10; i++) { System.out.println("主线程:" + i); } } } class Processor implements Runnable { @Override public void run() { // 线程执行的代码 for (int i = 0; i < 10; i++) { System.out.println("Processor线程:" + i); } } } ``` 在这两种方法中,`run()`方法都包含了线程要执行的代码。然而,实现`Runnable`接口提供了更大的灵活性,因为类可以同时实现多个接口,而Java只支持单继承。 在实际开发中,根据项目需求和设计考虑,可以选择适合的线程创建方式。例如,如果需要线程共享数据,可能需要使用`ThreadLocal`或实现`Callable`接口来获取返回值。另外,使用`ExecutorService`和`Future`可以更方便地管理和控制线程池,提高程序的并发性能。
- 粉丝: 17
- 资源: 958
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论10