线程基本概念

news/2024/10/4 19:21:48

1.进程与线程
1.1 进程
进程是资源分配的单位,系统在运行时会为每个进程分配不同的内存区域
1.2 线程
线程是调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc),线程切换的开销小。
一个Java应用程序java.exe,其实至少有三个线程:main()主线程(受异常影响),gc()垃圾回收线程,异常处理线程。

 进程是程序的一次执行过程,或是正在运行的一个程序

 一个进程中的多个线程共享相同的内存单元/内存地址空间。它们从同一堆中分配对象,可以访问相同的变量和对象。这就使得线程间通信更简便、高效。但多个线程操作共享的系统资源可能就会带来安全的隐患。

2.单核CPU与多核CPU
单核CPU,是一种假的多线程,因为在一个时间单元内,也只能执行一个线程的任务。Windows这种操作系统是把CPU的时间划分成长短基本相同的时间区间,即”时间片”,通过操作系统的管理(操作系统的时间片分时调度),把这些时间片依次轮流地分配给各个应用使用,CPU是在多个进程之间来回切换执行的。
举个例子:收费站只有收了费才能通过。此时有多个车道,但只有一个工作人员在收费。那么CPU就好比收费人员。如果有某个人磨磨蹭蹭不想交钱,那么收费人员可以把他“挂起”(晾着他,等他想通了,准备好了钱,再去收费)。但是因为CPU时间单元特别短,因此感觉不出来。
多核CPU,那就是在一个时间单元内,能真正的同时执行多个线程的任务。就好比有多个收费人员在同时收费。

3.并行与并发
并行:多个CPU同时执行多个任务,并行的多个任务之间是不互相抢占资源的。比如:多个人同时做不同的事。
并发:一个CPU(采用时间片)同时执行多个任务,并发的多个任务之间是互相抢占资源的。比如:多个人做同一件事
在有多个CPU的情况下,才会出现真正意义上的同时进行(即并行)。

 以单核CPU为例,使用单个线程先后完成多个任务(调用多个方法),肯定比用多个线程来完成用的时间更短,为何仍需多线程呢?
提高程序的效率和响应速度。
同时执行多个任务、实现一些需要等待的任务时,可以拆分成多个线程同时执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/28881.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

在Gitlab Runner中调用Web Api写入Directory.Build.props需要的版本号文件

摘要 本文介绍了在Windows上的Gitlab Runner,如何调用web api更新版本号定义文件。 PowerShell function Update-Version {param ([string]$WEB_API_URL,[string]$NAMESPACE,[string]$VERSION_ID)echo "能生成或写入.props文件的web api的网站地址:"$WEB_API_URL …

.Net Core中使用RabbitMQ

开发中经常用到发布订阅的功能,之前一直用的Redis,使用过程中也出现了一些问题,后来换了RabbitMQ,用上去更顺手,简单记录一下。 正文开始: RabbitMQ是一个开源的,基于AMQP(Advanced Message Queuing Protocol)协议的完整的可复用的企业级消息队,RabbitMQ可以实现点对点,发…

一行SQL语句实现统计未来7天、按月统计数据,无数据填充0

未来7天、按月统计数据,无数据填充0 help_topic1 背景由于业务需求,在项目的报表中心中需要未来7天、按月统计数据,且要求按天补全数据,补数据填为0。  附实测SQL语句,请大家指正。 2 举例 2.1未来7天,按天补全数据,无数据填充0 sql语句:select t1.lastDays as x, IF…

【译】使用(滥用)LLM 压缩文本

来源:o565.com/llm-text-compression/介绍 大型语言模型是在大型文本数据集上进行训练的,以学习更大文档中单词的关系和上下文。这些关系是模型生成文本的基础。 最近,我读到了关于 LLMs 被训练在受版权保护的文本上并将其复制的担忧。这让我想:可以从 LLM 中提取训练文本吗…

NodeJS路径遍历:示例及预防

让我们来看看什么是路径遍历攻击,以及在Node.js中可以采用哪些方法来阻止这种攻击。构建一个安全而健壮的应用程序需要考虑的因素很多,并非一件容易的事情。要确保覆盖所有潜在的漏洞是一项十分艰巨的任务,这需要大量的经验和指导。在这些漏洞中,有一个和系统目录访问安全相…

k8s搭建集群

1.单master集群 模式缺点:如果master宕机了,就整个集群也没有办法访问了。2.多master集群 模式 3.快速搭建k8s集群--Kubeadm: 4.快速搭建k8s集群--二进制方式: