Java并发编程系列之二:线程基础有哪些核心概念?
- 内容介绍
- 文章标签
- 相关推荐
本文共计7860个文字,预计阅读时间需要32分钟。
上篇章节回顾了并行发展的理论基础,主要探讨了为何使用多线程、多线程可能引发的问题及原因,以及如何利用Java中的多线程去解决这些问题。
上篇文章对并发的理论基础进行了回顾,主要是为什么使用多线程、多线程会引发什么问题及引发的原因,和怎么使用Java中的多线程去解决这些问题。
正所谓,知其然知其所以然,这是学习一个知识遵循的原则。
推荐读者先行查看并发编程的理论知识,以便可以丝滑入戏。
并发编程系列之一并发理论基础
本篇文章重点在于Java中怎么去使用多线程,和多线程的一些相关概念和操作,及怎么优化多线程。
在Java中每个对象都有其生命周期,线程同样不例外,也有其生命周期。
一、线程生命周期线程的几种状态转换
1、新建(New)新创建了一个线程对象,但还没有调用start()方法。
2、就绪当线程对象调用了start()方法后,该线程就进入就绪状态。处于就绪状态的线程位于线程队列中,此时它只是具备了运行的条件,能否获得CPU的使用权并开始运行,还需要等待系统的调度。
3、运行(Runnable)如果处于就绪状态的线程获得了CPU的使用权,并开始执行run()方法中的线程执行体,则该线程处于运行状态。
一个线程启动后,它可能不会一直处于运行状态,当运行状态的线程使用完系统分配的时间后,系统就会剥夺该线程占用的CPU资源,让其他线程获得执行的机会。需要注意的是,
只有处于就绪状态的线程才可能转换到运行状态。
4、阻塞(Blocking)等待获取一个排它锁,如果其线程释放了锁就会结束此状态。
①无限期等待(Waiting)
等待其它线程显式地唤醒,否则不会被分配 CPU 时间片。
本文共计7860个文字,预计阅读时间需要32分钟。
上篇章节回顾了并行发展的理论基础,主要探讨了为何使用多线程、多线程可能引发的问题及原因,以及如何利用Java中的多线程去解决这些问题。
上篇文章对并发的理论基础进行了回顾,主要是为什么使用多线程、多线程会引发什么问题及引发的原因,和怎么使用Java中的多线程去解决这些问题。
正所谓,知其然知其所以然,这是学习一个知识遵循的原则。
推荐读者先行查看并发编程的理论知识,以便可以丝滑入戏。
并发编程系列之一并发理论基础
本篇文章重点在于Java中怎么去使用多线程,和多线程的一些相关概念和操作,及怎么优化多线程。
在Java中每个对象都有其生命周期,线程同样不例外,也有其生命周期。
一、线程生命周期线程的几种状态转换
1、新建(New)新创建了一个线程对象,但还没有调用start()方法。
2、就绪当线程对象调用了start()方法后,该线程就进入就绪状态。处于就绪状态的线程位于线程队列中,此时它只是具备了运行的条件,能否获得CPU的使用权并开始运行,还需要等待系统的调度。
3、运行(Runnable)如果处于就绪状态的线程获得了CPU的使用权,并开始执行run()方法中的线程执行体,则该线程处于运行状态。
一个线程启动后,它可能不会一直处于运行状态,当运行状态的线程使用完系统分配的时间后,系统就会剥夺该线程占用的CPU资源,让其他线程获得执行的机会。需要注意的是,
只有处于就绪状态的线程才可能转换到运行状态。
4、阻塞(Blocking)等待获取一个排它锁,如果其线程释放了锁就会结束此状态。
①无限期等待(Waiting)
等待其它线程显式地唤醒,否则不会被分配 CPU 时间片。

