当前位置: 首页 > news >正文

线程安全 - 笔记

1 程序a调用c.so,程序b也调用c.so c.so加载两次吗?

在这种情况下,通常 c.so 不会被加载两次。

当一个程序调用一个共享对象文件(.so)时,操作系统的动态链接器将该共享对象映射到进程的虚拟内存空间中。后续由不同程序或者同一个程序调用相同的共享对象,都不会导致共享对象被重新加载。相反,动态链接器会检查共享对象是否已经加载,如果是,则仅增加它的引用计数。

因此,当程序 A 和程序 B 都在运行并且它们都调用 c.so 中的函数时,动态链接器会确保 c.so 只被加载一次,并且两个程序会共享同一个 c.so 实例。这就是使用共享库的好处之一——它们在多个进程之间共享,减少了内存消耗并提高了效率。

2 同时调用其中的函数fun -- 会产生冲突吗?

在一般情况下,同时调用共享库(c.so)中的同一个函数(例如 fun)不会产生冲突。

当多个程序同时调用共享库中的同一个函数时,每个程序的调用会被独立处理,而函数的代码段在内存中只有一份。因此,不会出现冲突的情况。操作系统会确保在多线程或多进程的情况下,对共享库中的函数的并发调用是安全的。

然而,要注意的是,如果函数 fun 内部存在状态(例如全局变量),并且这些状态在多个函数调用之间是共享的,则可能需要考虑线程安全性,以避免竞争条件和数据损坏。在这种情况下,需要使用同步机制

相关文章:

  • 解锁Android高效数据传输的秘钥 - Parcelable剖析
  • 数据库基础+增删查改初阶
  • P2341 受欢迎的牛
  • mac m1安装homebrew管理工具(brew命令)完整流程
  • 【源码】2024完美运营版商城/拼团/团购/秒杀/积分/砍价/实物商品/虚拟商品等全功能商城
  • uniapp中二次封装jssdk和使用
  • 如何让你的网站能通过域名访问
  • 【数据结构】探索树中的奇妙世界
  • 断开自定义模块与自定义库的链接
  • 网易面试:手撕定时器
  • 滑动窗口模板(Java)
  • JAVA-->方法的使用详解
  • 勒索病毒的策略与建议
  • 记录使用 Vue3 过程中的一些技术点
  • 一种最大重叠离散小波包特征提取和支持向量机的ECG心电信号分类方法(MATLAB 2018)
  • 08.Android之View事件问题
  • 10个确保微服务与容器安全的最佳实践
  • Android组件 - 收藏集 - 掘金
  • Angular Elements 及其运作原理
  • E-HPC支持多队列管理和自动伸缩
  • es的写入过程
  • Less 日常用法
  • node和express搭建代理服务器(源码)
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 基于axios的vue插件,让http请求更简单
  • 两列自适应布局方案整理
  • 扑朔迷离的属性和特性【彻底弄清】
  • 用mpvue开发微信小程序
  • 用Visual Studio开发以太坊智能合约
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​2021半年盘点,不想你错过的重磅新书
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​虚拟化系列介绍(十)
  • # 安徽锐锋科技IDMS系统简介
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #控制台大学课堂点名问题_课堂随机点名
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $GOPATH/go.mod exists but should not goland
  • (C11) 泛型表达式
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (南京观海微电子)——I3C协议介绍
  • (十一)手动添加用户和文件的特殊权限
  • (四)Controller接口控制器详解(三)
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一)WLAN定义和基本架构转
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .net 获取url的方法
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken