210224阶段三信号量、互斥锁
目录
- 一、学习的知识点
- 进程
- 线程
- 进程和线程
- 信号量和互斥锁
- 应用场景
- 二、上课没有听懂或者没有理解的地方
- 三、当天学习的收获
一、学习的知识点
- ls -a 显示隐藏文件
- cd ~ 回到home目录
- 每个文件夹都有两个隐藏目录 一个是 ./ 一个是 …/ 加深了我对Linux 万物文件 的理解(普通文件、目录、设备、套接字)
进程
- 所有的fd
- 内存映射 堆栈 bss rw ro
- 信号集
- 控制主线程:包括屏蔽信号、优先级、各种地址、各种指针
- 新线程:共享上面的资源
线程
多线程处理数据:数据安全问题:资源的抢占
一种制度 一种机制 来控制 资源抢占: 同一时间只能有一个人享受该资源:互斥锁
进程和线程
进程是资源分配的基本单位,线程是CPU调度的最小单位
- CPU就像一座工厂,时刻在运行。
- 假设工厂电力有限,一次只能供给给一个车间使用。也就是说,一个车间开工时,其他车间都必须停工。(单个CPU一次只能运行一个任务)
- 一个车间里,可以有很多工人,他们协同完成一个任务(一个进程可以包括多个线程)
- 车间的空间工人是共享的(一个进程的内存空间是共享的,每个线程都可以使用这些共享内存)
- 每个车间的大小不同,有些车间只能容纳一个人(一个线程使用某些共享内存时,其他线程必须等待它结束才能使用)
- 防止他人进入的简单方法,就是在门口上锁(互斥锁、防止多个线程同时读写某个内存区域)
- 还有些房间,可以同时容纳N个人,人数大于N时,多出来的人只能在外面等待(某些内存区域,只能供给固定数目的线程使用)
- 解决方法是,在门口挂N把钥匙。进去的人取一把钥匙,出来再把钥匙挂回原处,后面的人发现钥匙空了,就必须在门口等待。(信号量,保证多个线程不会互相冲突)
信号量和互斥锁
信号量用来解决外部矛盾(同步问题):生产者生产好东西,让消费者来取
互斥锁用来解决内部矛盾 (互斥问题):多个生产者同时操作一块内存
应用场景
在服务器中 秒杀、抢票
二、上课没有听懂或者没有理解的地方
无
三、当天学习的收获
210224阶段三信号量、互斥锁相关推荐
- linux 信号量锁 内核,Linux内核信号量互斥锁应用
主要介绍了Linux 内核关于信号量,互斥锁等的应用 内核同步机制-信号量/互斥锁/读-写信号量 sema ,mutex ,rwsem 信号量 通用信号量 用户类进程之间使用信号量(semaphore ...
- java 信号量 互斥锁_线程同步(互斥锁与信号量的作用与区别)
"信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里).而互斥锁是用在多线程多任务互斥的,一 ...
- 信号量 互斥锁 条件变量的区别
信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在哪里).而互斥锁是用在多线程多任务互斥的,一个线程占用了某 ...
- c++ linux 线程等待与唤醒_C++ Linux线程同步机制:POSIX信号量,互斥锁,条件变量...
线程同步机制:POSIX 信号量,互斥量,条件变量 POSIX 信号量 常用的POSIX 信号量函数为如下5个: sem_init sem_destroy sem_wait sem_trywait s ...
- 互斥锁、死锁、递归锁、信号量、Event
互斥锁 死锁和递归锁 Semaphore信号量 Event事件 互斥锁 互斥锁也叫用户锁.同步锁. 在多进程/多线程程序中,当多个线程处理一个公共数据时,会有数据安全问题,唯一能保证数据安全的,就是通 ...
- 自旋锁与互斥锁的区别,信号量和互斥锁的区别
文章目录 自旋锁与互斥锁的区别 信号量和互斥锁的区别 什么是信号量 什么是互斥锁 主要区别 生产者-消费者问题 使用mutex 使用信号量 信号量的优点 mutex的优点 信号量的缺点 mutex的缺 ...
- Python 进程互斥锁 Lock - Python零基础入门教程
目录 一.Python 线程互斥锁和进程互斥锁 1.创建线程互斥锁 2.创建进程互斥锁 二.进程互斥锁 Lock 函数介绍 三.进程互斥锁 Lock 使用 案例一:使用进程,但不使用互斥锁 案例二:进 ...
- 互斥锁的使用(学习笔记)
在我们上一章节学习了多线程,我们可以得知在一个进程里,主控线程,与多个子线程共享资源(比如全局变量),但是,我们发现有弊端,它们都可以修改共享资源里面的数据,并且运行 无先后顺序. 因此.同步和互斥就 ...
- Mutex与Semaphore 第二部分 互斥锁
原文链接: https://blog.feabhas.com/2009/09/mutex-vs-semaphores-%E2%80%93-part-2-the-mutex/ In Part 1 of ...
最新文章
- 美团外卖持续交付的前世今生
- matlab命名文件保存在哪里,用Matlab给整个文件夹下的文件分别重命名
- nginx 解析php漏洞
- mysql的所有权限
- 外挂安装eclipse插件
- DSP Builder
- 再见,再见,5 * 60 * 1000 //五分钟,再见,再见
- 解决:无法获取实体类com.xxx.xx.xx.xx.dto.XxxDTO对应的表名
- 名字英文name域名_企业建站必读:六大方法锁定最佳企业域名
- linux命令详解(arm交叉编译器)
- 以盛唐气象,浇胸中块垒:熊逸《唐诗50讲》学习笔记汇总
- 铣削力matlab,船用螺旋桨多轴铣削力仿真与优化+CAD图纸+MATLAB程序
- Windows命令行快速启动快捷方式
- 工商行政许可信息爬取及展示系统的设计与实现
- vue2和vue3安装element-ui或element-plus插件与插件卸载
- 记录一个非常实用的gif制作工具licecap
- 2023必火的5种服装店装修风格,看看哪种风格适合你家店?
- 专业系统开发流程有多少步骤?如何进行系统开发?
- QQ群头像 微信群头像 多图合并框架实现
- C语言人物复杂移动与异步输入