多线程

  • 进程,是对运行时程序的封装,是系统进行资源调度和分配的基本单位,实现了操作系统的并发。

  • 线程,是进程的一个实体,是 CPU 调度和分派的基本单位,是比进程更小的能独立运行的基本单位。

创建线程的三种方式

  • 继承 Thread 类

  • 实现 Runnable 接口

  • 实现 Callable 接口

public class ThreadDemo extends Thread {
    @Override
    public void run() {
        System.out.println("继承Thread类");
    }

    public static void main(String[] args) {
        ThreadDemo threadDemo = new ThreadDemo();
        threadDemo.start();
    }
}
public class RunnableDemo implements Runnable {
    @Override
    public void run() {
        System.out.println("实现Runnable接口");
    }

    public static void main(String[] args) {
        Thread thread = new Thread(new RunnableDemo());
        thread.start();
    }
}

run()方法是线程的执行体,线程对象的 start()方法用于启动线程,使线程进入就绪状态,当线程获得 CPU 时间片后,就会执行 run()方法。

控制线程的方法

  • sleep():让当前线程休眠指定时间,不释放锁。

  • yield():让当前线程让出 CPU,重新进入就绪状态。

  • join():等待线程终止。

  • interrupt():中断线程。

  • wait():让线程等待,释放锁。

  • notify():唤醒等待线程。

  • notifyAll():唤醒所有等待线程。

sleep()方法的作用是让当前线程休眠指定时间,不释放锁,线程休眠时间到后,线程进入就绪状态,等待 CPU 调度。

yield()方法的作用是让当前线程让出 CPU,重新进入就绪状态,等待 CPU 调度。

join()方法的作用是等待线程终止,当前线程等待调用 join()方法的线程终止后,再继续执行。

获取线程的执行结果

线程的5中状态

最后更新于

这有帮助吗?