开发者社区> 问答> 正文

如何确定_lock是否用于保护对_deferredTasks的多线程读写?

在_deferredTasks和_lock的关系中,如何确定_lock是否用于保护对_deferredTasks的多线程读写?

展开
收起
夹心789 2024-06-27 12:04:28 34 0
1 条回答
写回答
取消 提交回答
  • "在文件中全文搜索正则表达式x.{1,2}, #0x10筛选出所有引用_lock的指令以及所属方法,操作类似上述的_deferredTasks;从上可知,UIKeyboardTaskQueue类对_lock的使用封装成 4 个方法(忽略init创建和.cxx_destruct销毁的两个方法,该两方法不会有并发问题),也就是方法使用_lock必定会调用这 4 个方法。
    解锁方法有 1 个:

    1. -[UIKeyboardTaskQueue unlock]
      加锁方法有 3 个:
    2. -[UIKeyboardTaskQueue lock]
    3. -[UIKeyboardTaskQueue lockWhenReadyForMainThread]
    4. -[UIKeyboardTaskQueue tryLockWhenReadyForMainThread]"
    2024-06-27 13:29:27
    赞同 2 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载