240 发简信
IP属地:广东
  • Resize,w 360,h 240
    多线程(五)多线程编程中的安全隐患

    在上一篇文章中,主要讲解了多线程相关的一些概念,包括线程、多线程编程及优缺点,现在我们就来深入探讨一下安全隐患中的数据竞争问题。 数据竞争是指不...

  • Resize,w 360,h 240
    多线程(四) 何为多线程编程及优缺点

    说起多线程编程,大家应该都不陌生,从字面上理解,就是利用多线程技术编程。那么线程又是什么呢?今天我们就一起来探讨一下。 1.何为线程? 从程序执...

  • 多线程(三) 队列组的使用

    在开发过程中,我们可能会遇到这样的情况,任务1和任务2可以同时进行,但是任务3和任务4只有等任务1和任务2都完成以后,才可以执行。这时候如果我们...

  • 多线程(二)队列相关的常见面试题

    在上一篇文章中,我们主要分析了同步、异步,并发队列和串行队列。相信看过的朋友应该有初步的认识,但是总觉得朦朦胧胧,今天我们通过几个例子,来进一步...

  • 多线程(一) 认清同步、异步,并发和串行

    说起多线程我们都不陌生,在开发过程中,我们经常将一些耗时操作放在子线程中进行,处理完成以后会将结果通知主线程,继续后面的操作。比如从网络中下载一...

  • KVO实战 实现一个不需要removeObserver的KVO

    在开发过程中,经常会使用KVO做一些业务监听,比如监听列表的滑动位置,获取webView的加载进度和网页标题等等。通常的使用情况是在需要使用的地...

  • Resize,w 360,h 240
    Category的本质(二)运行时如何将方法和属性进行捆绑

    上一篇文章中,我们了解到,在编译阶段,每一个Category都是一个独立的结构体,其中包含实例方法、类方法、属性和遵循的协议。具体内容可参看Ca...

  • Category的本质(一)编译阶段都做了什么?

    Category对我们并不陌生,相信大家在开发过程中都有用过。使用较多的场景,我猜应该有2个: 在没有拿到源码的情况下,对静态库或动态库添加方法...

  • KVC(四)KVC与KVO的关系

    通过前面几篇文章,我们已经了解了KVO与KVC的内部实现逻辑:KVO通过运行时实现中间类,当被监听的值发生改变时,向观察者发送通知,告诉值已发生...