解析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);
    }
}

b 示例代码运行截图

在这里插入图片描述

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

在这里插入图片描述

b 点击性能

在这里插入图片描述

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

在这里插入图片描述

d 点击上方的cpu菜单栏

在这里插入图片描述

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

在这里插入图片描述

6.1.3 我的电脑法
a 我的电脑右键管理

在这里插入图片描述

b 点击设备管理器

在这里插入图片描述

c 点击处理器

在这里插入图片描述

d 查看cpu个数的结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSS4362

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值