美文网首页iOS开发
iOS 这是你想要的

iOS 这是你想要的

作者: 楼上那位 | 来源:发表于2017-03-27 13:01 被阅读9次

Runloop 相关

Runloop 保持线程能随时处理事件而不退出
深入理解Runloop

  • 线程和Runloop 的关系
    线程和 RunLoop 之间是一一对应的,其关系是保存在一个全局的 Dictionary 里。线程刚创建时并没有 RunLoop,如果你不主动获取,那它一直都不会有。RunLoop 的创建是发生在第一次获取时,RunLoop 的销毁是发生在线程结束时。你只能在一个线程的内部获取其 RunLoop(主线程除外)
  • 一个 RunLoop 包含若干个 Mode,每个 Mode 又包含若干个 Source/Timer/Observer。每次调用 RunLoop 的主函数时,只能指定其中一个 Mode,这个Mode被称作 CurrentMode。如果需要切换 Mode,只能退出 Loop,再重新指定一个 Mode 进入。这样做主要是为了分隔开不同组的 Source/Timer/Observer,让其互不影响。
RunLoop_0.png
  • Source/Timer/Observer 被统称为 mode item,一个 item 可以被同时加入多个 mode。但一个 item 被重复加入同一个 mode 时是不会有效果的。如果一个 mode 中一个 item 都没有,则 RunLoop 会直接退出,不进入循环

锁相关

@synchronized
  • 传入@synchronized的参数和这个锁有什么关系?
  • @synchronized是否持有它所加锁的对象?
  • 如果传入@synchronized代码块的对象在代码块里被析构了或者被置为nil了会怎么样?

解答:

  • 对于每个加了同步的对象,`Objective-C的运行时都会给其分配一个递归锁,并且保存在一个哈希表中。
  • 一个被加了同步的对象被析构活着被置为nil都是没有问题的。然而文档中并没有对此进行什么说明
  • 注意不要往@synchronized代码块中传入nil!这会毁掉代码的线程安全性。通过往objc_sync_nil加入断点你可以看到这种情况的发生。

@synchronized代码块隐式地给被保护的代码段添加了一个异常处理块。这就是为什么在给某个对象保持同步的时候,如果抛出了异常,锁就会被释放。

递归锁,是一种在已持有锁的线程重复请求锁却不会发生死锁的锁。你可以在这里找到一个相关的例子。有个很好用的类NSRecursiveLock

优化相关

待看

[浅谈Block] (http://www.jianshu.com/p/f9956b102d36)

[浅谈Clang] (http://www.jianshu.com/p/9fc7776cce9b)

相关文章

  • iOS 这是你想要的

    Runloop 相关 Runloop 保持线程能随时处理事件而不退出深入理解Runloop 线程和Runloop ...

  • 这是你最想要的

    自信的力量 2015以前每每当我站上舞台的时候总会痛不欲生,无比的紧张,双腿颤抖着就像打桩机一样。我还记得高二那年...

  • 这是你所想要的吗

    或许是因为我敦厚老实的形象和温婉灵动的声线太能给人安全感和信任感,或许是因为我字字珠玑的话语太能引人共鸣和唤起新知...

  • iOS1

    随着 iOS10的推出,iOS应用需要做相关的配置: 1:如果你的App想要...

  • 这是你想要的

    谈钱,谈房,谈车,不如谈谈你的身体。看钱多钱少,位置高还是低,不如看看你的身体精壮还是脆弱。 什么时候你最有底气?...

  • 这是我想要的

    今早的直播间,是我想要的! 自我理解,自我认可!去做事!没有放弃,一直笃定!在我离开岗位的那一天,我知道,有一天,...

  • iOS小技巧总结,绝对有你想要的

    iOS小技巧总结,绝对有你想要的 iOS小技巧总结,绝对有你想要的

  • 这是我想要的爱情,你呢?

    我们都曾在象牙塔里仰望过柏拉图式的爱情 我们走遍世间所有的路,不过是为了寻得幸福的模样。 幸福是什么 是红玫瑰还是...

  • 这是你真正想要的?对抗状态?

    生娃之前爱看亦舒,记得亦舒笔下写到孩子愿意用一个词--斗智斗勇。当时只觉得精准无比。 生娃之后再看到这个词,不能赞...

  • 这是你所想要的椰汁桂花糕?

    1 第一次做成椰汁桂花糕,有点失落,有点期待,又有点开心,特别是切好摆盘,duang~,果冻般轻摇,晶莹剔透,椰汁...

网友评论

    本文标题:iOS 这是你想要的

    本文链接:https://www.haomeiwen.com/subject/hqilottx.html