侧边栏壁纸
博主头像
峰峰火火

一条咸鱼罢了

  • 累计撰写 122 篇文章
  • 累计创建 89 个标签
  • 累计收到 59 条评论

目 录CONTENT

文章目录

Java核心之多线程

峰峰火火
2021-01-22 / 0 评论 / 0 点赞 / 271 阅读 / 986 字 / 正在检测是否收录...
温馨提示:
若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

线程、程序、进程的基本概念

  • 线程与进程相似,但线程是一个比进程更小的执行单位。

  • 一个进程在其执行的过程中可以产生多个线程。

  • 与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。

  • 程序是含有指令和数据的文件,被存储在磁盘或其他的数据存储设备中,也就是说程序是静态的代码。

  • 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。

线程的基本状态

6 种不同状态的其中一个状态

Java线程的状态.png

Java 线程状态变迁
Java 线程状态变迁.png

  • 线程创建之后它将处于 NEW(新建) 状态

  • 调用 start() 方法后开始运行

  • 线程这时候处于 READY(可运行) 状态。

  • 可运行状态的线程获得了 cpu 时间片(timeslice)后就处于 RUNNING(运行) 状态。

  • 当线程执行 wait()方法之后,线程进入 WAITING(等待) 状态。

  • 进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态,而 TIME_WAITING(超时等待) 状态相当于在等待状态的基础上增加了超时限制,比如通过 sleep(long millis)方法或 wait(long millis)方法可以将 Java 线程置于 TIMED WAITING 状态。

  • 当超时时间到达后 Java 线程将会返回到 RUNNABLE 状态。

  • 当线程调用同步方法时,在没有获取到锁的情况下,线程将会进入到 BLOCKED(阻塞) 状态。

  • 线程在执行 Runnable 的run()方法之后将会进入到 TERMINATED(终止) 状态。

0

评论区