• 解析java中的多线程的基本概念


    解析java中的多线程的基本概念

    1 程序(program)

    程序是为了完成某项实际功能,用某种语言编写的一种指令的集合.简单来说,我们平常敲的代码就是程序。程序是静态的一种状态。

    2 进程(processor)

    2.1 进程指的是运行中的程序。

    2.2 进程是一种动态过程,占用系统的资源(CPU、内存、硬件)

    2.3 进程若崩掉了,会让出资源(CPU、内存、硬件)给其他需要资源的进程使用

    2.4 每个进程之前相互独立,但是两者之间可以通过特定的方法通信

    举例:火车站可以看成一个程序,那么候车室和售票厅就相当于两个进程,因为他们俩分别负责不同的功能,两者之间是独立的,他们执行不同的功能时候互不影响.

    2.5 进程举例说明: 打开电脑上面的qq,qq一旦运行它就是一个进程

    3 线程(thread)

    3.1 进程里面最小的执行单元,不可再分。

    3.2 每个线程都有自己独立的栈空间

    3.3 线程和线程之间是可以共享的,包含它们进程所对应的堆、方法区

    3.4 某个线程崩掉了,此进程也可能会崩掉

    3.5 线程可以并发执行

    3.6 线程是由进程创建的,是进程的一个实体

    3.6 一个进程可以拥有多个线程

    例如: 启动了的百度网盘可以看出一个进程,然后它里面的多个下载任务可以看出一个个的线程,下载的速度谁快谁慢也是需要自己去争抢网速的(抢夺式下载)

    4 并发

    4.1 内容

    同一个时刻,多个任务交替执行,给咱们造成一种貌似同时的错觉,实际上并不是同时执行了(只不过是cpu的执行速度够快而已)

    单核cpu实现的多任务就是并发

    4.2 举例说明

    例如:你在打游戏的时候同时进行语音交流,看上去是同时发生的,实际上是不是,是你的大脑的运算速度足够快,然后能支撑着你边玩游戏边聊天。(打游戏用到的是手,聊天用到的是嘴巴)

    5 并行

    5.1 内容

    同一个时刻,多个任务同时执行

    5.2 举例说明

    例如: 你的电脑同时启动了qq和百度网盘,在下载资源的同时,还可以和好友进行聊天

    这两个操作是同一个时刻执行的,就是并行操作

    6 补充

    6.1 如何查看电脑里面有几个cpu

    6.1.1 程序方法

    a 示例代码
    package Work4;
    public class CPUTest {
        public static void main(String[] args) {
            Runtime runtime=Runtime.getRuntime();
            //获取当前电脑的cpu数量
            int cpuNum=runtime.availableProcessors();
            System.out.println("当前电脑的cpu数量为: "+cpuNum);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    b 示例代码运行截图

    在这里插入图片描述

    6.1.2 任务管理器法

    a 在搜索处搜索任务管理器并回车

    在这里插入图片描述

    b 点击性能

    在这里插入图片描述

    c 点击打开资源管理器按钮

    在这里插入图片描述

    d 点击上方的cpu菜单栏

    在这里插入图片描述

    e 得到最终的cpu数量为8(从0开始命名的)

    在这里插入图片描述

    6.1.3 我的电脑法

    a 我的电脑右键管理

    在这里插入图片描述

    b 点击设备管理器

    在这里插入图片描述

    c 点击处理器

    在这里插入图片描述

    d 查看cpu个数的结果

    在这里插入图片描述

  • 相关阅读:
    log4j:WARN No appenders could be found for logger
    SpringMVC全注解开发
    spring cloud+spring boot__基于SpringSecurity实现RABC模式实现系统登录和动态权限
    上能写代码,下要“揍”黑客,还有什么不是程序员的“锅”?
    vue3的开发小技巧
    Rancher - 更换Linux发行版
    【EI会议征稿】第七届大数据与应用统计国际学术研讨会(ISBDAS 2024)
    【二十】分割Segmentation_Threshold——threhold()算子
    双动子大理石高速直线模组在检测设备中的应用
    python读取图片
  • 原文地址:https://blog.csdn.net/SSS4362/article/details/126235221