iOS中的锁

在计算机科学中,锁是一种同步机制,用于在存在多线程的环境中实施对资源的访问限制。你可以理解成它用于排除并发的一种策略。

例子

if(lock == 0) {

lock = myPID;

}

上面这段代码并不能保证这个任务有个锁,因此它可以在同一时间被多个任务执行。这个时候就有可能多个任务都检测到lock是空闲的,因此两个或者多个任务都将尝试设置lock,而不知道其他的任务也在尝试设置lock。这个时候就会出问题了。

在iOS中,锁分为递归锁、条件锁、分布式锁、一般锁

对于数据库的锁分类:

iOS中的锁_第1张图片

锁的作用

这个比较通俗来讲:就是为了防止在多线程(多任务)的情况下对共享资源(临界资源)的脏读或者脏写。也可以理解为:执行多线程时用于强行限制资源访问的同步机制,即并发控制中保证互斥的要求。

你可能感兴趣的:(iOS中的锁)