关于操作系统的一些问题
2021/10/4 23:14:56
本文主要是介绍关于操作系统的一些问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.线程是什么
线程(Thread)是进程当中的一条执行流程,是进程的一个实体。
同一个进程内多个线程之间可以共享该进程的地址空间、堆空间、全局变量、打开的文件等资源,但每个线程都有独立一套的寄存器和栈,这样可以确保线程的控制流是相对独立的。
参考:https://mp.weixin.qq.com/s/YXl6WZVzRKCfxzerJWyfrg
2.生产者-消费者模型
生产者负责生产产品,消费者负责消费产品。
过程: 生产者生产产品放入仓库,消费者查看仓库是否有产品,如果有就消费;如果没有,就等待生产者生产。生产者生产好之后,发出信号告知消费者,消费者等待结束,消费产品。
3.消息队列
生产者和消费者之间需要通信的媒介,就是消息队列。
生存者发送消息,消息队列存下消息,再传送给消费者。
注意: 读取消息队列时,如果为空,应该阻塞
写消息队列时,如果已满,也应该阻塞
4.锁的概念
每个线程在对资源操作之前,先加上一个锁,防止别的线程来操作这些资源。操作完成之后,再解锁。
这里的锁也就是操作系统书上所说的信号量(Semaphores)
锁有两个原子操作,wait(S)、signal(S)
,也称为P、V操作
wait操作是等待资源,signal操作是释放资源。
实现消息队列需要锁
5.条件变量概念
条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。
条件变量是线程的另外一种同步机制,这些同步对象为线程提供了会合的场所
6.C++ 关于多线程的操作
C++ 中mutex
是互斥锁
用到了线程,编译线程时要加上-pthread
这篇关于关于操作系统的一些问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法
- 2024-08-21【Linux】gnome桌面环境切换KDE Plasma
- 2024-08-19如何安装 VMware Tools (macOS, Linux, Windows)
- 2024-08-15Linux部署Scrapy教程:入门级指南