JAVA深化篇_26—— 多线程之线程的创建【附详细创建代码】

线程的创建

通过继承Thread类实现多线程

继承Thread类实现多线程的步骤:

  1. 在Java中负责实现线程功能的类是java.lang.Thread 类。

    **此种方式的缺点:**如果我们的类已经继承了一个类(如小程序必须继承自 Applet 类),则无法再继承 Thread 类。

  2. 可以通过创建 Thread的实例来创建新的线程。

  3. 每个线程都是通过某个特定的Thread对象所对应的方法run( )来完成其操作的,方法run( )称为线程体。

  4. 通过调用Thread类的start()方法来启动一个线程。

通过继承Thread类实现多线程

public class TestThread extends Thread {//自定义类继承Thread类
  //run()方法里是线程体
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println(this.getName() + ":" + i);//getName()方法是返回线程名称
        }
    }


    public static void main(String[] args) {
        TestThread thread1 = new TestThread();//创建线程对象
        thread1.start();//启动线程
        TestThread thread2 = new TestThread();
        thread2.start();
    }
}

通过Runnable接口实现多线程

在开发中,我们应用更多的是通过Runnable接口实现多线程。这种方式克服了继承Thread类的缺点,即在实现Runnable接口的同时还可以继承某个类。

从源码角度看,Thread类也是实现了Runnable接口。Runnable接口的源码如下:

public interface Runnable {
   void run();
}

两种方式比较看,实现Runnable接口的方式要通用一些。

通过Runnable接口实现多线程

public class TestThread2 implements Runnable {//自定义类实现Runnable接口;
  //run()方法里是线程体;
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println(Thread.currentThread().getName() + ":" + i);
        }
    }
    public static void main(String[] args) {
    //创建线程对象,把实现了Runnable接口的对象作为参数传入;
        Thread thread1 = new Thread(new TestThread2());
        thread1.start();//启动线程;
        Thread thread2 = new Thread(new TestThread2());
        thread2.start();
    }
}

你可能感兴趣的:(JAVA,基础深化和提高,java,开发语言)