1_java_多线程基础

38 阅读1分钟

一. 必要的前置基础知识

  • 基础概念
    • 进程:操作系统分配内存资源的基本单位,可以理解为一个程序就行一个进程。
    • 线程:线程通常依附于进程存在,一个进程中通常包括一个或者多个线程,线程属于cpu调度执行的基本单位
    • 串行:程序必须逐行执行,上一行代码没有执行完成,不会执行下一行代码。
    • 并行:需要硬件支持(cpu中的多个核心),真正意义上的同时执行,在同一个时刻执行不同代码。
    • 并发:单核cpu在极短的时间内切换不同的线程执行代码,看似是同时执行,但是并不是在同一个时刻执行的。
  • 创建线程的方式
    • Thread
    • Runnable
    • Callable
  • 线程中常见的方法
    • Thread.sleep(); Thread.yield();Thread.currentThread();
    • Thread.currentThread().getName();
  • java中的线程的6种状态
    • NEW:新建,线程对象创建之后没有调用start()方法。
    • RUNNABLE:运行中,这里状态分为两种一个是就绪状态,尚未获取到cpu时间片段,等待cpu的调度执行,一个是运行中状态,已经获取到cpu的时间片,正在执行线程代码。
    • BLOCKED:阻塞,只有在使用synchronizde的时候等待获取锁资源的时候会出现。
    • WAITING:无限期等待,线程一直会被挂起,只会有手动调用唤醒方法才能继续执行。
    • TIMED_WAITING:有限期等待,调用的时候一般会传入一个参数,到达指定时间之后会自动恢复执行
    • TERMINATED:结束,包括正常或者异常结束线程都会是这个状态