信号量介绍 信号量就是一个资源计数器,对信号量有两个操作来达到互斥,分别是P和V操作。 我们平常说的加锁其实就是信号量为1时的特例。 信号量互斥访问的原理 设信号量值为n, ...
信号量介绍 信号量就是一个资源计数器,对信号量有两个操作来达到互斥,分别是P和V操作。 我们平常说的加锁其实就是信号量为1时的特例。 信号量互斥访问的原理 设信号量值为n, ...
这里有一个地方不好理解,为什么一开始要设置信号量为0呢?按照上面的说法,信号量为0不就一直卡住当前线程了么?其实这正是我们想要的效果,想象一下,当我们程序走到`dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);`这句代码时,因为信号量为0,所以当前线程阻塞不会继续往下执行,但是网络请求成功之后会执行block块中的`dispatch_semaphore_signal(sema);`代码,使得信号量+1,而wait函数此时监测到信号量大于0 ,便继续往下执行。这样才能保证全部网络请求完成之后再进行最终操作。
浅谈GCD中的信号量在客户端开发中,我们很少用到信号量,并发数。甚至有些同学根本就没听说过这两个概念。今天就简单说说GCD中的信号量。 基本概念 ** 关于iOS开发中,多线程基本的概念和基本使...
通知的使用 NSNotificationCenter通知中心是iOS程序内部的一种消息广播的实现机制,可以在不同对象之间发送通知进而实现通信,通知中心采用的是一对多的方式,一...
KVO使用 KVO(key-value-observing)键值监听常用来监听特定对象中某属性值的变化,日常开发中我们常常监听数据模型的变化从而动态的修改对应视图。当然上述需...
Charles安装 HTTP抓包 HTTPS抓包 1. Charles安装 官网下载安装Charles:https://www.charlesproxy.com/downlo...
触摸事件的生命周期 当我们手指触碰屏幕的那一刻,一个触摸事件便产生了。经过进程间通信,触摸事件被传递到合适的应用之中,在该应用内部触摸事件历经坎坷,最终被释放掉。整个过程如下...
Runloop 是和线程紧密相关的一个基础组件,是很多线程有关功能的幕后功臣。尽管在平常使用中几乎不太会直接用到,理解 Runloop 有利于我们更加深入地理解 iOS 的多...
拷贝协议 在iOS开发中,只有实现了NSCopying | NSMutableCopy协议的对象才支持copy | mutableCopy操作,发送copy消息实际上是调用协...
简述 在iOS开发中,与直接使用苹果框架中提供的NSURLConnection或NSURLSession进行网络请求相比,使用AFNetworking会有哪些好处?当同时发起...
NSTimer 的创建 NSTimer的创建通常有两种方式,一种是以 scheduledTimerWithTimeInterval 为开头的类方法 。这些方法在创建了 NST...
1 Block机制 (Very Good) Block技巧与底层解析 http://www.jianshu.com/p/51d04b7639f1 (Good)谈Objecti...
概括 runtime维护了一个weak表,用于存储指向某个对象的所有weak指针。weak表是一个hash表,key是指向对象的地址,Value是Weak指针的地址的数组,如...
花絮:从上一篇文章的发表到这篇文章的发表已经有很长一段时间了,一直在摸索适合自己的学习方式,到现在还是没有找到适合自己的,尝试如下: 1.每天上班都是活跃在各大iOS开发群,...
当对象收到无法解读的消息时,就会启动“消息转发机制(message forwarding)”,我们可以通过该过程告诉对象应该如何处理未知消息。 如果我们没有做任何措施,则运行...
这是我前面几天碰到的面试题: 如何对定位和分析项目中影响性能的地方?以及如何进行性能优化? 我的答案: 定位方法: instruments 在iOS上进行性能分析的时候,...
ViewController的几种初始化方法的调用时机 以StoryBoard方式加载ViewController 我们新建一个项目的时候,默认生成的控制器就是根据Main....
一、简介 分为本地推送和远程推送2种。可以在应用没有打开甚至手机锁屏情况下给用户以提示。它们都需要注册,注册后系统会弹出提示框(如下图)提示用户是否同意,如果同意则正常使用;...
引言 之前说到CALayer以及子类动画,并且CALayer的有些属性自带隐式动画,不明白的可自行查看之前的文章,今天说一说CoreAnimation核心动画。 在开发过程中...
程序员必备基础知识点(活到老学到老的知识点) 算法和数据结构 LeetCode 算法导论 剑指 offer 计算机系统原理 深入理解计算机系统 操作系统原理和基础 网络方面 ...
前言: 按照时间顺序,事件的生命周期是这样的:事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view、寻找最合适的view的底层实现、拦截事件的处理)->找到...