目录

  • 一、学习的知识点
      • 进程
    • 线程
    • 进程和线程
    • 信号量和互斥锁
      • 应用场景
  • 二、上课没有听懂或者没有理解的地方
  • 三、当天学习的收获

一、学习的知识点

  1. ls -a 显示隐藏文件
  2. cd ~ 回到home目录
  3. 每个文件夹都有两个隐藏目录 一个是 ./ 一个是 …/ 加深了我对Linux 万物文件 的理解(普通文件、目录、设备、套接字)

进程

  1. 所有的fd
  2. 内存映射 堆栈 bss rw ro
  3. 信号集
  4. 控制主线程:包括屏蔽信号、优先级、各种地址、各种指针
  5. 新线程:共享上面的资源

线程

多线程处理数据:数据安全问题:资源的抢占
一种制度 一种机制 来控制 资源抢占: 同一时间只能有一个人享受该资源:互斥锁

进程和线程

进程是资源分配的基本单位,线程是CPU调度的最小单位

  1. CPU就像一座工厂,时刻在运行。
  2. 假设工厂电力有限,一次只能供给给一个车间使用。也就是说,一个车间开工时,其他车间都必须停工。(单个CPU一次只能运行一个任务)
  3. 一个车间里,可以有很多工人,他们协同完成一个任务(一个进程可以包括多个线程)
  4. 车间的空间工人是共享的(一个进程的内存空间是共享的,每个线程都可以使用这些共享内存)
  5. 每个车间的大小不同,有些车间只能容纳一个人(一个线程使用某些共享内存时,其他线程必须等待它结束才能使用)
  6. 防止他人进入的简单方法,就是在门口上锁(互斥锁、防止多个线程同时读写某个内存区域)
  7. 还有些房间,可以同时容纳N个人,人数大于N时,多出来的人只能在外面等待(某些内存区域,只能供给固定数目的线程使用)
  8. 解决方法是,在门口挂N把钥匙。进去的人取一把钥匙,出来再把钥匙挂回原处,后面的人发现钥匙空了,就必须在门口等待。(信号量,保证多个线程不会互相冲突)

信号量和互斥锁

信号量用来解决外部矛盾(同步问题):生产者生产好东西,让消费者来取
互斥锁用来解决内部矛盾 (互斥问题):多个生产者同时操作一块内存

应用场景

在服务器中 秒杀、抢票

二、上课没有听懂或者没有理解的地方

三、当天学习的收获

210224阶段三信号量、互斥锁相关推荐

  1. linux 信号量锁 内核,Linux内核信号量互斥锁应用

    主要介绍了Linux 内核关于信号量,互斥锁等的应用 内核同步机制-信号量/互斥锁/读-写信号量 sema ,mutex ,rwsem 信号量 通用信号量 用户类进程之间使用信号量(semaphore ...

  2. java 信号量 互斥锁_线程同步(互斥锁与信号量的作用与区别)

    "信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里).而互斥锁是用在多线程多任务互斥的,一 ...

  3. 信号量 互斥锁 条件变量的区别

    信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在哪里).而互斥锁是用在多线程多任务互斥的,一个线程占用了某 ...

  4. c++ linux 线程等待与唤醒_C++ Linux线程同步机制:POSIX信号量,互斥锁,条件变量...

    线程同步机制:POSIX 信号量,互斥量,条件变量 POSIX 信号量 常用的POSIX 信号量函数为如下5个: sem_init sem_destroy sem_wait sem_trywait s ...

  5. 互斥锁、死锁、递归锁、信号量、Event

    互斥锁 死锁和递归锁 Semaphore信号量 Event事件 互斥锁 互斥锁也叫用户锁.同步锁. 在多进程/多线程程序中,当多个线程处理一个公共数据时,会有数据安全问题,唯一能保证数据安全的,就是通 ...

  6. 自旋锁与互斥锁的区别,信号量和互斥锁的区别

    文章目录 自旋锁与互斥锁的区别 信号量和互斥锁的区别 什么是信号量 什么是互斥锁 主要区别 生产者-消费者问题 使用mutex 使用信号量 信号量的优点 mutex的优点 信号量的缺点 mutex的缺 ...

  7. Python 进程互斥锁 Lock - Python零基础入门教程

    目录 一.Python 线程互斥锁和进程互斥锁 1.创建线程互斥锁 2.创建进程互斥锁 二.进程互斥锁 Lock 函数介绍 三.进程互斥锁 Lock 使用 案例一:使用进程,但不使用互斥锁 案例二:进 ...

  8. 互斥锁的使用(学习笔记)

    在我们上一章节学习了多线程,我们可以得知在一个进程里,主控线程,与多个子线程共享资源(比如全局变量),但是,我们发现有弊端,它们都可以修改共享资源里面的数据,并且运行 无先后顺序. 因此.同步和互斥就 ...

  9. Mutex与Semaphore 第二部分 互斥锁

    原文链接: https://blog.feabhas.com/2009/09/mutex-vs-semaphores-%E2%80%93-part-2-the-mutex/ In Part 1 of ...

最新文章

  1. 美团外卖持续交付的前世今生
  2. matlab命名文件保存在哪里,用Matlab给整个文件夹下的文件分别重命名
  3. nginx 解析php漏洞
  4. mysql的所有权限
  5. 外挂安装eclipse插件
  6. DSP Builder
  7. 再见,再见,5 * 60 * 1000 //五分钟,再见,再见
  8. 解决:无法获取实体类com.xxx.xx.xx.xx.dto.XxxDTO对应的表名
  9. 名字英文name域名_企业建站必读:六大方法锁定最佳企业域名
  10. linux命令详解(arm交叉编译器)
  11. 以盛唐气象,浇胸中块垒:熊逸《唐诗50讲》学习笔记汇总
  12. 铣削力matlab,船用螺旋桨多轴铣削力仿真与优化+CAD图纸+MATLAB程序
  13. Windows命令行快速启动快捷方式
  14. 工商行政许可信息爬取及展示系统的设计与实现
  15. vue2和vue3安装element-ui或element-plus插件与插件卸载
  16. 记录一个非常实用的gif制作工具licecap
  17. 2023必火的5种服装店装修风格,看看哪种风格适合你家店?
  18. 专业系统开发流程有多少步骤?如何进行系统开发?
  19. QQ群头像 微信群头像 多图合并框架实现
  20. C语言人物复杂移动与异步输入

热门文章

  1. Luogu2295 MICE
  2. django学习(1)-----项目组成
  3. 阅读笔记五2017.2.13
  4. static、final、static final 用法
  5. comet 异步请求技术中相关关键字解释 (新手向)
  6. 从零开始学习Sencha Touch MVC应用之十九
  7. 给JSP页面加过滤器
  8. matlab 的均值t检验,用MATLAB做T检验(ttest)
  9. linux日志文件备份,linux配置文件、日志文件全备份
  10. linux系统正常停机的命令,Linux系统重启命令大全