社区
C++ 语言
帖子详情
提问帖,请问Linux共享内存的全局变量的差别
吾心安处方是家
2012-09-02 04:53:56
这里只谈Linux下多线程获取通一块数据的问题:
比如线程A和B他们格要查看一个数据对象num
1 全局变量的做法是这个int num只要是A和B都能访问到的即可,我做一个带锁的get,set函数就可以了
2 但是网上还有nmap和shmat的方法,我自己也尝试了皮毛。
所以不太理解,全局变量这种共享方式的存在是否合理。就来问一下各位了。希望知道的帮我解惑!!
...全文
834
6
打赏
收藏
提问帖,请问Linux共享内存的全局变量的差别
这里只谈Linux下多线程获取通一块数据的问题: 比如线程A和B他们格要查看一个数据对象num 1 全局变量的做法是这个int num只要是A和B都能访问到的即可,我做一个带锁的get,set函数就可以了 2 但是网上还有nmap和shmat的方法,我自己也尝试了皮毛。 所以不太理解,全局变量这种共享方式的存在是否合理。就来问一下各位了。希望知道的帮我解惑!!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq120848369
2012-09-03
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:
引用 3 楼 的回复:
回2楼
你是指,共享内存是多process之间的通信方式吧?
如果你是纠结于多进程没法互斥访问共享内存, 那你了解一下如何使用进程共享的mutex和cond,另外了解一下POSIX和SYSTEM V信号量。
你提到的MMAP和SHMGET也是POSIX和SYSTEM V的两种共享内存形式。
说你没学会C语……
[/Quote]
共享内存是多进程通信用的, 多线程随便你怎么做, 你不会malloc就用全局变量吧。
吾心安处方是家
2012-09-03
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
回2楼
你是指,共享内存是多process之间的通信方式吧?
如果你是纠结于多进程没法互斥访问共享内存, 那你了解一下如何使用进程共享的mutex和cond,另外了解一下POSIX和SYSTEM V信号量。
你提到的MMAP和SHMGET也是POSIX和SYSTEM V的两种共享内存形式。
说你没学会C语言是因为你认为线程间共享的东西只……
[/Quote]
嗯,想问下,全局变量和共享内存比较,是不是效率上有差异,所以要用共享内存这种比较繁琐的方式。
qq120848369
2012-09-02
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
回2楼
你是指,共享内存是多process之间的通信方式吧?
[/Quote]
如果你是纠结于多进程没法互斥访问共享内存, 那你了解一下如何使用进程共享的mutex和cond,另外了解一下POSIX和SYSTEM V信号量。
你提到的MMAP和SHMGET也是POSIX和SYSTEM V的两种共享内存形式。
说你没学会C语言是因为你认为线程间共享的东西只能定义成全局变量,你难道想不出其他线程间共享变量的方法了吗?
吾心安处方是家
2012-09-02
打赏
举报
回复
回2楼
你是指,共享内存是多process之间的通信方式吧?
qq120848369
2012-09-02
打赏
举报
回复
楼主还是没掌握好C语言, 难道把变量和锁的地址传到两个线程里, 让两个线程去加锁操作就不行了吗?
genio
2012-09-02
打赏
举报
回复
共享内存用于跨进程,全局变量没法跨进程
嵌入式面试全攻略:从C语言到
Linux
驱动的核心考点与实战思路
嵌入式系统开发涉及从底层硬件到上层软件的完整技术栈,C语言与数据结构是根基,操作系统与驱动开发则是分水岭。理解指针内存、结构体对齐、RTOS调度原理,掌握
Linux
进程线程、设备树与并发处理,是嵌入式工程师应对技术面试的关键。面试官真正考察的是候选人面对具体问题时的分析能力与工程思维,而非死记硬背的八股答案。针对单片机、
Linux
应用、驱动等不同方向,梳理高频考点与开放式场景题的应答框架,并结合项目经验展示方法论,能够帮助求职者构建从原理到实践的知识网络,从容应对秋招与跳槽面试。
嵌入式面试核心考点全解析:从C语言到
Linux
驱动
嵌入式开发作为软硬件结合的关键领域,对工程师的底层原理理解力要求极高。从MCU上电后的启动流程、内存布局与中断机制,到C语言中指针、堆栈与大小端的底层语义,再到
Linux
驱动中platform总线与设备树的协同工作,这些基础概念构成了嵌入式知识体系的基石。理解这些原理,不仅有助于解决资源受限、实时性要求高的工程问题,更是嵌入式岗位面试中区分候选人的关键。无论是单片机、RTOS还是
Linux
驱动方向,面试官往往通过追问volatile、static等基础点来考察候选人的知识深度与工程经验。掌握这些核心考点,并
8核CPU到底能创建多少线程?从进程线程到系统限制全解析
在操作系统中,进程是资源分配的基本单位,线程则是调度执行的基本单位,两者的核心差异在于隔离与切换成本。创建线程的数量并非由CPU核数直接决定,而是受系统参数、内存资源、调度开销等多重因素制约。理解这些底层原理,是掌握并发编程与线程池配置的基础。无论是CPU密集型还是IO密集型任务,合理的线程池参数、有界队列选择以及死锁排查,都离不开对操作系统调度机制的认知。从Java、C#到Python、Qt,不同语言的线程模型各有特点,但最终都回归到对系统资源的有效利用。本文从进程与线程的底层概念出发,结合实测数据与排障
嵌入式面试考察逻辑全拆解:从C语言内存到项目实战
嵌入式面试的核心,是考察工程师在资源受限环境中定位与解决问题的能力。C语言的内存管理、volatile与指针等基础概念,构成嵌入式开发的底层原理;RTOS中的信号量、互斥锁与死锁防范,体现并发场景下的系统思维;I2C、SPI等硬件协议与ARM体系结构,决定软硬件协同的工程能力。面试官通过追问项目细节,观察候选人能否完整呈现“现象-定位-修复”的实战过程。将基础原理内化并迁移到具体项目中,就能在嵌入式岗位竞争中获得明显优势。
C++校招笔试实战:从C语言基础到算法与面试全攻略
在C/C++开发中,指针与内存管理是构建高性能系统的基石,理解其底层原理能有效避免线上故障。字符串处理与数据结构算法则决定了代码的健壮性与效率,是技术面试与笔试中的高频考点。从基础语法到工程实践,从本地调试到在线OJ,扎实的C语言基本功与算法设计能力,正是应对视频类公司C++岗位校招笔试的关键。操作系统与网络知识同样不可忽视,它们与C语言基础共同构成笔试的考察重心。文章以爱奇艺校招为例,梳理了C语言深水区、字符串逆序、最短路算法等实战内容,并延伸到面试追问与工程落地,为备考者提供完整的复习路径,助力在竞争中
C++ 语言
65,214
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章