• 解析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个数的结果

    在这里插入图片描述

  • 相关阅读:
    PHP和Mysql前后端交互效果实现
    Zookeeper特性与节点数据类型详解
    MyBatis-Plus + Spring Boot入门案例
    Linux操作系统——线程概念
    摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
    “五彩大棚”蔬菜大棚-国稻种芯:创新植物光合功能各不同
    Lambda 表达式怎么用?
    [附源码]SSM计算机毕业设计亿上汽车在线销售管理系统JAVA
    netty系列之:netty中的核心编码器base64
    前端工作总结113-点击按钮报错--bug修复--直接写接口里面
  • 原文地址:https://blog.csdn.net/SSS4362/article/details/126235221