00017.00线程相关的概念

系列文章目录

多线程比较难又比较基础

前言

这里不是单单指Java中的概念,而是操作系统的概念,每一个编程语言都会涉及到这些东西
1、JavaSE:多线程基础 这一段时间我们只讲基础
2、后面:多线程高级 juc(后面的高级部分再详细说明讲解)

一、多线程相关的一些概念:

1、程序

当你要完成某个/些任务,功能时,选择一种编程语言而编写的一组指令的集合。

2、软件

 软件 = 程序 + 程序运行所需要的一些资源文件。
  一个软件中可能会有很多个程序构成。

3、 进程:

程序的一次运行。
每个进程之间是独立。操作系统在分配资源(例如:内存)时,是以进程为单位。
两个进程之间进行切换,通信(交换数据)等操作时,成本比较高。

在这里插入图片描述

4、线程

进程中的其中一条执行路径。
同一个进程中的多个线程之间是可以共享部分内存(方法区、堆),每个线程的有些内存又是独立(虚拟机栈、本地方法栈、程序计数器)。
因为线程之间可能使用共享内存,那么在数据交换成本上就比较低。而且线程之间的切换,对于CPU和操作系统来说,成本比较低。
所以我们通常用多线程来代替多进程的方式,实现多任务开发。
线程是CPU调度的最小单位。

5、并行

多个线程同时运行。
并行,要求同时进行。针对CPU多核,甚至多个CPU,同时运行多个线程任务。
例如:一边听歌一边写代码,多个线程同时进程

6、并发

多个进程同时运行
**高并发,多个任务处理功能,但是不要求同时进行。**

例如:上课了,老师要求你先听课,听完课之后,你继续写你的代码(多个任务同时运行,但是不要去同时进行)

7、CPU

一个CPU同一个时间只能够运行一个线程的任务。
如何实现多个线程同时运行的呢?是因为CPU是非常快,这个速度远远高于内存、硬盘、人的大脑反应的速度。
那么CPU会在多个线程之间,快速的切换,人是感觉不到。

总结

主要是概念的了解,计算机相关专业的同学,应该要非常熟悉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值