iOS中目前最喜欢用的四种锁

dispatch_semaphore_t(信号锁)

NSLock(锁)

NSConditionLock(条件锁)

@synchronized (TARGET){//code}

三种锁的创建:

三种锁的创建方式都比较简单、dispatch_semaphore_t当value只有0和1的时候其实可以看成一种互斥锁、这个和NSlock的作用基本相同。NSConditionLock可以说是这三个中比较强大的一种锁了、因为Condition的存在我们可以进行多条件Condition的控制、当然当Condition只有0和1两种情况时,其实三者没有太多的区别(内部原理不清楚哦!!!据说dispatch_semaphore_t的效率更高、不过确实好多的三方框架使用的就是dispatch_semaphore_t进行的锁控制)。

iOS中目前最喜欢用的四种锁_第1张图片
P1-1-1

锁的使用:

我们先创建一个环境、两个线程执行不同的任务、但是两个线程是交替执行的也就是线程A->线程B->线程A->线程B......一直循环进行。

上代码:

iOS中目前最喜欢用的四种锁_第2张图片
P1-1-2

工作线程A:

iOS中目前最喜欢用的四种锁_第3张图片
P1-1-3

工作线程B:

iOS中目前最喜欢用的四种锁_第4张图片
p-1-14

case1、case2、case3是三种锁的简单使用方式、这样便可以做到线程A和线程B在同步切换进行工作。

你可能感兴趣的:(iOS中目前最喜欢用的四种锁)