「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战」
Hope is a good thing, maybe the best of things. And no good thing ever dies—— 《The Shawshank Redemption》
前言
Java 本身的概念还是比较多的,所以学习的开始还是要先打好基础,从一些基本的概念入手,这些都是Java的一些常识。在Java的面试中都是很重要的东西。
今天从Java的线程开始学习。
线程概述
什么是线程呢?
专业术语来说,线程(Thread)是将一系列活动按照事先设定好的顺序依次执行的过程,是一系列指令的集合。在计算机中,线程是操作系统能够运算和调度的最小单位,系统中有很多的线程,我们可以理解为一个线程就是系统的一条执行路径,就是用来完成一个任务的。
- 字面意思
- 像线一样的、线性的
- 有顺序的
- 执行过程
- 计算机含义
- 是一次执行活动
- 是一系列指令的集合
- 是计算机最小调度单位
与线程紧密关联的一个概念是进程
什么是进程?
线程是不能单独存在的,它必须被包含在进程中,一个进程中可以多个线程
进程(Process)是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。
- 三个要点
- 独立的程序
- 一次运行活动
- 是一个实体,即“数据集合”
- 特点
- 运行的程序的实例
- 资源分配的基本单位
- 系统调度的基本单位
线程和进程的关系
- 进程是资源分配的基本单位
- 线程独立运行和调度的最小(基本)单位
- 进程包含一个或多个线程
线程调度方式
系统会有很多的线程,那么多个线程之间是如何切换的呢?
-
抢占式(preemptive)
操作系统给每个运行的线程一个时间片(该线程被允许的运行时间),时间片用完则将 CPU 执行权(根据优先级)切换到另一个线程
-
协作式(cooperative)
直到线程运行结束或阻塞,将 CPU 执行权交给另一个线程,否则一直等待。主要适用于早起的虚拟机或者一些专用的系统或者是一些小型机,小型设备上的系统。
结语
如果这篇文章帮到了你,欢迎点赞👍和关注⭐️。
文章如有错误之处,希望在评论区指正🙏🙏
欢迎关注我的微信公众号,一起交流技术,微信搜索 🔍 :「 五十年以后 」