线程基础

28 阅读1分钟

线程基础

  1. 什么是线程,什么是进程

    • 线程是进程的最小单位
    • 一个进程可以有一个或者多个线程组成
  2. 并发与并行

    • 并发是一个线程同时做多件事情
    • 并行是多个线程同时做一件事情
  3. 创建线程的方式

    • 通过继承Thread类
    • 实现runnable
    • 创建线程池
  4. 线程的状态

    • 创建

      • 通过创建线程但未调用start方法
    • 可运行

      • 调用start方法运行线程
    • 阻塞

      • 未获取锁,在阻塞队列中不占有cpu时间
    • 计时等待

      • 使用wait方法释放锁让其他线程运行
      • 使用sleep方法未释放锁其他线程无法运行
    • 等待

      • 释放锁等待被notify方法唤醒
    • 死亡

      • 线程执行完成自动销毁
      • 线程出现异常
  5. run方法与start方法的区别

    • run是被调用方法里面写业务,可以多次调用
    • start方法是启动线程方法只能执行一个
  6. sleep方法与wait方法的区别

    • 使用wait方法释放锁让其他线程运行
    • 使用sleep方法未释放锁其他线程无法运行
  7. notifyAll与notify的区别

    • notifyAll唤醒所有等待的线程
    • notify随即唤醒等待线程