java中实现多线程(继承Thread类、实现Runnable接口)

Java多线程

当在Java中谈到多线程时,我们指的是同时执行多个线程的能力。线程是程序中执行的单个流程,而多线程允许程序同时执行多个任务。

在Java中,有几种创建和管理多线程的方法。其中最常用的两种是继承Thread类和实现Runnable接口。

  1. 继承Thread类创建线程:

class MyThread extends Thread {

    public void run() {

        // 线程执行的代码

    }

}

public class Main {

    public static void main(String[] args) {

        MyThread thread1 = new MyThread();

        MyThread thread2 = new MyThread();

        // 启动线程

        thread1.start();

        thread2.start();

    }

}

在这个例子中,MyThread类继承了Thread类,并重写了run()方法来定义线程要执行的代码。然后,在Main类中创建MyThread类的实例,并调用start()方法来启动线程。

  1. 实现Runnable接口创建线程:

class MyRunnable implements Runnable {

    public void run() {

        // 线程执行的代码

    }

}

public class Main {

    public static void main(String[] args) {

        MyRunnable myRunnable = new MyRunnable();

        Thread thread1 = new Thread(myRunnable);

        Thread thread2 = new Thread(myRunnable);

        // 启动线程

        thread1.start();

        thread2.start();

    }

}

在这个例子中,MyRunnable类实现了Runnable接口,并重写了run()方法。然后,在Main类中创建MyRunnable类的实例,并传递给Thread类的构造函数,然后调用start()方法来启动线程。

线程生命周期:

在Java中,线程具有不同的状态,它们构成了线程的生命周期。常见的线程状态包括:

新建(New):创建了一个线程对象。

就绪(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。

运行(Running):就绪状态的线程调度器选中它来运行。

阻塞(Blocked):线程被挂起,等待某个条件的发生。

终止(Terminated):线程执行完毕或者因异常退出了run()方法。

线程同步与互斥:

多线程编程中常常涉及共享资源的访问和修改,为了避免出现竞争条件和数据不一致的情况,需要使用线程同步和互斥机制。Java提供了synchronized关键字和Lock接口来实现线程的同步和互斥。

这是Java多线程的基本概念和实现方法的简要介绍。多线程编程是Java中一个重要且复杂的主题,需要深入学习和实践才能掌握。

Author: eclipse