并发编程之线程基础

news/2024/11/8 15:05:58/

进程:

1.程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO 的。

2.当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。

3.操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位

线程:

1.线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。

2.一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给 CPU 执行 。(一个线程可以理解为就是一个cpu可执行的一个指令序列)

  1. 线程,有时被称为轻量级进程(Lightweight Process,LWP),是操作系统调度 (CPU调度)执行的最小单位,线程可以共享进程里面的一些资源

进程与线程的区别:

  • 进程基本上相互独立的,而线程存在于进程内,是进程的一个子集

  • 进程拥有共享的资源,如内存空间等,供其内部的线程共享

  • 进程间通信较为复杂

  • 线程通信相对简单,因为它们共享进程内的内存,一个例子是多个线程可以访问同一共享变量

  • 线程更轻量,线程上下文切换成本一般上要比进程上下文切换低

进程间的通信方式:


http://www.ppmy.cn/news/9021.html

相关文章

lscpu查看cpu信息

$ lscpu Architecture: x86_64 # 架构CPU op-mode(s): 32-bit, 64-bitAddress sizes: 45 bits physical, 48 bits virtualByte Order: Little Endian # 字节序 CPU(s): 2 # 逻辑cpu数On-line CPU(s) list: 0,1 Vendo…

第一章:C++算法基础之基础算法

系列文章目录 文章目录系列文章目录前言一、排序(1)快速排序核心思想思路分析模板(2)归并排序核心思想思路分析模板稳定性时间复杂度二分查找(1)整数二分核心思想思路分析模板(2)浮点…

C#高级程序设计Type类

C#高级程序设计 一.反射 是.net一种非常重要的机制,通过反射可以在运行时获取类的成员、属性、事件和构造方法等等。有了反射,使我们对类的类型了如指掌。 二.涉及的类 2.1 Type类 System.Reflection命名空间下。 查阅相应的帮助文档。 Name Nam…

python中的多态和抽象类接口

目录 一.多态 抽象类(接口) 小结 一.多态 多态,指的是:多种状态,即完成某个行为时,使用不同的对象会得到不同的状态。 同样的行为(函数),传入不同的对象得到不同的状态 演示 cl…

植物大战僵尸:代码实现无限阳光

通过逆向分析植物阳光数量的动态地址找到阳光的基址与偏移,从而实现每次启动游戏都能够使用基址加偏移的方式定位阳光数据,最后我们将通过使用C语言编写通用辅助实现简单的无限阳光辅助,在教程开始之前我们先来说一下为什么会有动态地址与基址…

[项目说明]-基于人工智能博弈树,极大极小(Minimax)搜索算法并使用Alpha-Beta剪枝算法优化实现的可人机博弈的AI智能五子棋游戏。

个人选题项目 基于人工智能博弈树,极大极小(Minimax)搜索算法并使用Alpha-Beta剪枝算法优化实现的可人机博弈的AI智能五子棋游戏。 设计目标及主要内容 本系统是根据传统五子棋游戏的功能编写,其功能实现了基于AI人工智能算法实现智能的人机对弈五子棋…

如何用LightningChart创建Android图表数据可视化应用程序?(下)

LightningChart JS 是一款高性能的 JavaScript 图表工具,专注于性能密集型、实时可视化图表解决方案。 LightningChart .JS | 下载试用(qun:740060302)https://www.evget.com/product/4189/download 在上一篇,我们介…

如何避免无效外贸邮件营销?

如何避免无效的邮件营销,米贸搜为您整理如下,希望对您有所帮助:1 .和邮件正文一样重视主题主题对于电子邮件就像标题对于文章或博客一样重要。即使你有全宇宙最吸引人的散文诗,或者最吸引人的求婚,如果根本没有人打开这封邮件&…