在上一篇文章中,主要讲解了多线程相关的一些概念,包括线程、多线程编程及优缺点,现在我们就来深入探讨一下安全隐患中的数据竞争问题。 数据竞争是指不...
说起多线程编程,大家应该都不陌生,从字面上理解,就是利用多线程技术编程。那么线程又是什么呢?今天我们就一起来探讨一下。 1.何为线程? 从程序执...
在开发过程中,我们可能会遇到这样的情况,任务1和任务2可以同时进行,但是任务3和任务4只有等任务1和任务2都完成以后,才可以执行。这时候如果我们...
在上一篇文章中,我们主要分析了同步、异步,并发队列和串行队列。相信看过的朋友应该有初步的认识,但是总觉得朦朦胧胧,今天我们通过几个例子,来进一步...
说起多线程我们都不陌生,在开发过程中,我们经常将一些耗时操作放在子线程中进行,处理完成以后会将结果通知主线程,继续后面的操作。比如从网络中下载一...
在开发过程中,经常会使用KVO做一些业务监听,比如监听列表的滑动位置,获取webView的加载进度和网页标题等等。通常的使用情况是在需要使用的地...
上一篇文章中,我们了解到,在编译阶段,每一个Category都是一个独立的结构体,其中包含实例方法、类方法、属性和遵循的协议。具体内容可参看Ca...
Category对我们并不陌生,相信大家在开发过程中都有用过。使用较多的场景,我猜应该有2个: 在没有拿到源码的情况下,对静态库或动态库添加方法...
通过前面几篇文章,我们已经了解了KVO与KVC的内部实现逻辑:KVO通过运行时实现中间类,当被监听的值发生改变时,向观察者发送通知,告诉值已发生...