Java自学之路—线程概述

157 阅读2分钟

「这是我参与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)是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。

  • 三个要点
    • 独立的程序
    • 一次运行活动
    • 是一个实体,即“数据集合”
  • 特点
    • 运行的程序的实例
    • 资源分配的基本单位
    • 系统调度的基本单位

线程和进程的关系

  1. 进程是资源分配的基本单位
  2. 线程独立运行和调度的最小(基本)单位
  3. 进程包含一个或多个线程

image.png

线程调度方式

系统会有很多的线程,那么多个线程之间是如何切换的呢?

  1. 抢占式(preemptive)

    操作系统给每个运行的线程一个时间片(该线程被允许的运行时间),时间片用完则将 CPU 执行权(根据优先级)切换到另一个线程

  2. 协作式(cooperative)

    直到线程运行结束或阻塞,将 CPU 执行权交给另一个线程,否则一直等待。主要适用于早起的虚拟机或者一些专用的系统或者是一些小型机,小型设备上的系统。

结语

如果这篇文章帮到了你,欢迎点赞👍和关注⭐️。

文章如有错误之处,希望在评论区指正🙏🙏

欢迎关注我的微信公众号,一起交流技术,微信搜索 🔍 :「 五十年以后