【Java】线程相关概念

举报
兮动人 发表于 2022/04/26 11:03:11 2022/04/26
1.2k+ 0 0
【摘要】 1. 程序(program) 2. 进程 3. 什么是线程 4. 线程相关概念 1. 程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。简单的说:就是我们写的代码。 2. 进程进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间。当我们使用微信,又启动了一个进程,操作系统将为微信分配新的内存空间。进程是程序的一次执行过程,或是正在...

1. 程序(program)

  • 是为完成特定任务、用某种语言编写的一组指令的集合。简单的说:就是我们写的代码。

2. 进程

  1. 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间。当我们使用微信,又启动了一个进程,操作系统将为微信分配新的内存空间。
  2. 进程是程序的一次执行过程,或是正在运行的一个程序。是动态过程:有它自身的产生、存在和消亡的过程。

3. 什么是线程

  1. 线程由进程创建的,是进程的一个实体
  2. 一个进程可以拥有多个线程,举例如下:
    在这里插入图片描述

4. 线程相关概念

  1. 单线程:同一个时刻,只允许执行一个线程
  2. 多线程:同一个时刻,可以执行多个线程,比如:一个qq进程,可以同时打开多个聊天窗口,一个迅雷进程,可以同时下载多个文件。
  3. 并发:同一个时刻,多个任务交替执行,造成一种“貌似同时”的错觉,简单的说:单核cpu实现的多任务就是并发。
    如下:CPU处在来回切换的方式来执行程序的
    在这里插入图片描述
  4. 并行:同一个时刻,多个任务同时执行。多核cpu可以实现并行。
    在这里插入图片描述
    并行里面可能也会出现并发,并发和并行也有可能都存在的。
  • Java代码的形式查看当前电脑的CPU数量/核心数
public class CpuNum {
    public static void main(String[] args) {

        Runtime runtime = Runtime.getRuntime();
        //获取当前电脑的cpu数量/核心数
        int cpuNums = runtime.availableProcessors();
        System.out.println("当前有cpu 个数=" + cpuNums);
    }
}

在这里插入图片描述

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。