Java 多线程、创建线程的三种方式之一——Thread类创建、Thead类的API

什么是进程?

程序是静止的,运行中的程序就是进程。

进程的三个特征:

  1. 动态性:进程是运行中的程序。要动态的占用内存、CPU和网络等资源。
  2. 独立性:进程与进程之间是相互独立的,彼此有自己的独立内存区域。
  3. 并发性:假如CPU是单核。 同一个时刻其实内存中只有一个进程在被执行。
    CPU会分时轮询切换依次为每个进程服务。因为切换的速度非常快,给我们的感觉这些进程在同时执行,这就是并发性。

并行:同一个时刻同时有多个在执行。

什么是线程?

  • 线程是属于进程的。一个进程可以包含多个线程,这就是多线程。
  • 线程是进程中的一个独立执行单元。
  • 线程创建开销相对于进程来说比较小。
  • 线程也支持并发性。

多线程创建的三种方式:

多线程是很有用的。我们在进程中创建线程的方式有三种:

  1. 直接定义一个类继承线程类Thread,重写run() 方法,创建线程对象
    调用线程对象的start()方法启动线程。
  2. 定义一个线程任务类实现Runnable接口,重写run()方法, 创建线程任务对象,
    把线程任务对象包装成线程对象,调用线程对象的start()方法启动线程。
  3. 实现Callable按口(拓展)。

线程创建方式一:

a. 继承Thread类的方式

  1. 定义一个线程类继承Thread类。
  2. 重写run()方法
  3. 创建一个新的线程对象。
  4. 调用线程对象的start()方法启动线程。
public class ThreadDemo {
    //将main方法当做一个主线程
    public static void main(String[] args) {
        //3.创建一个线程对象
        Thread t = new MyThread();
        //4.线程对象调用start方法启动线程,最终执行run方法
        t.start();

        for (int i = 0; i <= 5; i++) {
            System.out.println("main线程输出i:" + i);
        }
    }
}

//1.定义一个类继承Thread类
class MyThread extends Thread{
    //2.重写run方法
    @Override
    public void run() {//线程的执行方法
        for (int i = 0; i <= 5; i++) {
            System.out.println("子线程输出i:" + i);
        }
    }
}

部分并发执行的结果:

Java 多线程、创建线程的三种方式之一——Thread类创建、Thead类的API_第1张图片Java 多线程、创建线程的三种方式之一——Thread类创建、Thead类的API_第2张图片

Java 多线程、创建线程的三种方式之一——Thread类创建、Thead类的API_第3张图片

继承Thread类的优缺点:

优点:编码简单。
缺点:线程类已经继承了Thread类无法继承其他类了,功能不能通过继承拓展;


Thead类的常用API:

  • public void setName (string name) :给当前线程取名字。
  • public void getName () :获取当前线程的名字。
    线程存在默认名称,子钱程的默认名称是: Thread-索引。
    主线程的默认名称就是: main
  • public static Thread currentThread()
    获取当前线程对象,这个代码在哪个钱程中,就得到哪个线程对象。
  • public static void sleep(long time): 让当前线程休眠多少毫秒再继续执行。

你可能感兴趣的:(Java,java,多线程)