Java中的线程是什么?

  • Post category:Java

线程(Thread)是操作系统能够进行运算调度的最小单位,它被包含在进程中,是进程中的实际运作单位,是指进程中一个单一的顺序控制流。Java中的线程是Java虚拟机(JVM)管理的一种资源,直接操作系统的线程是Java语言所不允许的。

Java中的线程可以通过实现Runnable接口或继承Thread类来创建。实现Runnable接口的线程更为常用,因为这样可以实现代码复用,并且java不支持多继承。

Java中的线程具有以下特点:

  • Java中的线程是轻量级的,创建和销毁所需时间和资源极少

  • 线程属于进程,多个线程共享进程的资源

  • 线程有各自执行的代码,但是线程间共享的是进程的资源

  • 由于线程的调度是由JVM控制的,因此Java中的多线程并不保证线程的执行次序

以下是一个通过实现Runnable接口来创建线程的示例:

        // 定义线程类
        class MyThread implements Runnable {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + " is running");
            }
        }

        // 主函数
        public static void main(String[] args) {

            // 创建3个线程
            MyThread myThread1 = new MyThread();
            MyThread myThread2 = new MyThread();
            MyThread myThread3 = new MyThread();

            // 开始线程执行
            new Thread(myThread1).start();
            new Thread(myThread2).start();
            new Thread(myThread3).start();

        }

以上代码中,MyThread类实现了Runnable接口,并重写了run方法。通过创建新的线程对象并传递MyThread对象,然后调用start方法,使新线程进入可运行状态,一旦获取CPU时间片,就会执行run方法里面的内容。执行结果不保证三个线程的运行次序。

另一个示例是通过继承Thread类来创建线程:

        // 定义线程类
        class MyThread extends Thread {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + " is running");
            }
        }

        // 主函数
        public static void main(String[] args) {

            // 创建3个线程
            MyThread myThread1 = new MyThread();
            MyThread myThread2 = new MyThread();
            MyThread myThread3 = new MyThread();

            // 开始线程执行
            myThread1.start();
            myThread2.start();
            myThread3.start();

        }

以上代码中,MyThread类继承了Thread类,并重写了run方法。通过创建新的线程对象,然后调用start方法,使新线程进入可运行状态,一旦获取CPU时间片,就会执行run方法里面的内容。执行结果不保证三个线程的运行次序。