稀土掘金 稀土掘金
    • 首页
    • 沸点
    • 课程
    • 数据标注 HOT
    • AI Coding
    • 更多
      • 直播
      • 活动
      • APP
      • 插件
    • 直播
    • 活动
    • APP
    • 插件
      • 搜索历史 清空
        • 写文章
        • 发沸点
        • 写笔记
        • 写代码
        • 草稿箱
        创作灵感 查看更多
  • 后端
  • 前端
  • Android
  • iOS
  • 人工智能
  • 开发工具
  • 代码人生
  • 阅读
  • 4-16.【OC】【锁】为什么 dispatch_semaphore 不是严格意义上的锁?
    在并发编程的语境下,虽然我们经常把 dispatch_semaphore 当作锁来用(比如信号量设为 1),但从设计哲学和底层语义来看,它确实不是严格意义上的“锁”。 主要原因在于它缺乏锁的两个核心属
    • 项阿丑
    • 5天前
    • 4
    • 点赞
    • 评论
    Objective-C
  • 4-15.【OC】【锁】NSConditionLock 的状态值在工程中适合什么场景?
    NSConditionLock 是对 NSCondition 的进一步封装。它最大的特点是:它不仅是一把锁,还自带一个“整数状态值(Condition Value)”。 在工程中,它最适合解决的是**
    • 项阿丑
    • 5天前
    • 7
    • 点赞
    • 评论
    Objective-C
  • 4-14.【OC】【锁】NSCondition 的条件变量模型是怎样的?
    NSCondition 封装了 POSIX 线程(pthread)中的两个核心原语:互斥锁(Mutex) 和 条件变量(Condition Variable) 。 它的模型本质上是一个 “生产者-消费
    • 项阿丑
    • 5天前
    • 7
    • 点赞
    • 评论
    Objective-C
  • 4-13.【OC】【锁】recursive mutex 内部需要维护哪些额外状态?
    相比于普通的互斥锁(Mutex),递归锁(Recursive Mutex) 的核心区别在于它允许“锁的所有者”多次进入而不死锁。为了实现这一点,它必须在底层内存中维护普通锁所没有的额外状态信息。 在
    • 项阿丑
    • 5天前
    • 8
    • 点赞
    • 评论
    Objective-C
  • 4-12.【OC】【锁】pthread_mutex 的 adaptive spinning 是什么?
    在高性能锁的设计中,Adaptive Spinning(自旋自适应) 是一种混合策略,旨在平衡“空转等待”的低延迟和“挂起线程”的低功耗。 简单来说,它让 pthread_mutex 变得“聪明”了:
    • 项阿丑
    • 5天前
    • 8
    • 点赞
    • 评论
    Objective-C
  • 4-11.【OC】【锁】NSLock 与 pthread_mutex 在实现上有什么差异?
    从层级结构上来说,NSLock 是对 pthread_mutex 的 面向对象封装。虽然它们最终都指向底层的内核同步原语,但在性能、功能和使用场景上有着显著的差异。 1. 抽象层级的差异 pthrea
    • 项阿丑
    • 5天前
    • 7
    • 点赞
    • 评论
    Objective-C
  • 4-10.【OC】【锁】@synchronized 的性能瓶颈主要来自哪几层?
    虽然 @synchronized 在易用性上拿到了满分,但它的性能在 iOS 各类锁中通常排在末尾。其性能瓶颈并非来自单一原因,而是源于从语言层到底层硬件的“多重收税” 。 1. 全局竞争层:哈希桶冲
    • 项阿丑
    • 5天前
    • 5
    • 点赞
    • 评论
    Objective-C
  • 4-9.【OC】【锁】@synchronized 为什么天然支持递归?
    @synchronized 之所以天然支持递归(即同一个线程可以多次获取同一把锁而不会导致死锁),是因为它在底层使用了 递归锁(Recursive Mutex) ,并且配合了**嵌套计数(Nestin
    • 项阿丑
    • 5天前
    • 7
    • 点赞
    • 评论
    Objective-C
  • 4-8.【OC】【锁】为什么 @synchronized(nil) 不起作用?
    这个问题直指 @synchronized 底层的实现逻辑。简单来说,因为它遵循了 Objective-C 的 “向 nil 发送消息不执行操作” 以及 “基于对象地址查找锁” 的原则。 如果传入的是
    • 项阿丑
    • 5天前
    • 12
    • 点赞
    • 评论
    Objective-C
  • 4-7.【OC】【锁】objc_sync_enter 内部如何根据对象找到对应的锁?
    在 objc_sync_enter 的底层实现中,Objective-C 并没有为每个对象直接分配一个锁(那太浪费内存了),而是采用了一种全局哈希映射的机制。 它的核心逻辑可以概括为:通过对象的内存地
    • 项阿丑
    • 5天前
    • 8
    • 点赞
    • 评论
    Objective-C
  • 4-6.【OC】【锁】@synchronized 在编译期会被展开成什么?
    在 Objective-C 中,@synchronized(obj) 是最易用的同步手段,但它其实是一个高度封装的语法糖。在编译期,编译器会将它展开为一对特殊的函数调用,并配合异常处理机制来确保锁的释
    • 项阿丑
    • 5天前
    • 9
    • 点赞
    • 评论
    Objective-C
  • 2026年3月上海APP软件系统定制开发公司市场分析
    2026年2月上海APP软件系统定制开发公司市场分析 15年市场营销专家带你洞察数字化转型背后的技术伙伴选择逻辑   摘要   随着企业数字化转型进入深水区,选择一家靠谱的APP软件系统定制开发公司成
    • 用户61315930934
    • 5天前
    • 9
    • 点赞
    • 评论
    面试
  • 4-5.【OC】【锁】CAS 为什么会产生 ABA 问题?在 iOS 中如何规避?
    CAS(Compare-And-Swap)虽然是无锁编程的基石,但它有一个致命的逻辑漏洞:它只检查“值”是否相等,而不检查“值”是否被改动过。 1. 为什么会产生 ABA 问题? CAS 的逻辑是:
    • 项阿丑
    • 5天前
    • 6
    • 点赞
    • 评论
    Objective-C
  • 4-4.【OC】【锁】指令重排会在哪些情况下破坏临界区语义?
    在单线程世界里,编译器和 CPU 遵循 “不影响最终执行结果(As-if-serial)” 的原则进行优化。但在多线程环境下,这种“自作聪明”的优化(指令重排)极易导致临界区(Critical Sec
    • 项阿丑
    • 5天前
    • 7
    • 点赞
    • 评论
    Objective-C
  • 4-3.【OC】【锁】什么是 False Sharing?在锁设计中如何避免?
    False Sharing(伪共享) 是多核编程中一个极其隐蔽的性能杀手。它发生在这种场景:两个完全无关的变量,因为恰好被编译器或分配器放到了同一个 Cache Line(缓存行) 中,导致本应并行的
    • 项阿丑
    • 5天前
    • 8
    • 点赞
    • 评论
    Objective-C
  • 4-2.【OC】【锁】CPU Cache 与 MESI 协议在锁竞争中扮演什么角色?
    在多核编程中,锁(Lock)只是上层的抽象,而 CPU Cache 与 MESI 协议 则是底层执行的真实现场。它们之间的互动决定了锁竞争的性能瓶颈。 简单来说:锁竞争的本质,就是多个 CPU 核心抢
    • 项阿丑
    • 5天前
    • 9
    • 点赞
    • 评论
    Objective-C
  • 4-1.【OC】【锁】为什么“线程安全”本质是内存可见性问题,而不仅是互斥?
    实际上,互斥(Mutual Exclusion)只解决了“谁能改”的问题,而可见性(Visibility)解决了“改了之后别人能不能看见”的问题。 如果只考虑互斥而忽略可见性,即便你的代码加了锁,依然
    • 项阿丑
    • 5天前
    • 12
    • 点赞
    • 评论
    Objective-C
  • 深入解析软件第三方测试:业务与内涵
    在现代软件开发过程中,确保软件的质量和稳定性是至关重要的。为了达到这一目标,越来越多的企业选择将软件测试外包给专业的第三方测试机构。这些机构凭借其独立性和专业性,为客户提供高质量、客观公正的测试服务。
    • 柯信软件测评
    • 5天前
    • 12
    • 点赞
    • 评论
    后端 Vue.js
    深入解析软件第三方测试:业务与内涵
  • 3. iOS开发中使用atomic,有什么问题?
    1. 核心结论 在 iOS 开发中,我们几乎总是使用 nonatomic,极少使用 atomic。 使用 atomic 存在两个主要问题: 性能损耗:atomic 会在 setter/getter 方
    • iOS在入门
    • 5天前
    • 74
    • 1
    • 评论
    iOS
  • 2. 怎么用 copy 关键字?
    1. 核心应用场景 我们主要在以下两种情况使用 copy 关键字: A. 修饰具有“可变子类”的不可变对象 最典型的是 NSString, NSArray, NSDictionary。 为什么? 为了
    • iOS在入门
    • 5天前
    • 14
    • 点赞
    • 评论
    iOS
  • 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30