在开发过程中,使用多线程来可以提高程序运行效率。本文不说多线程,重点说说锁的使用。什么时候需要用到锁呢?比如相亲,多少单身狗的痛。你经过七大姑八大姨的介绍,争取到了一个相亲的机会,于是你就屁颠屁颠的去见人家姑娘了。结果殊不知,等你到了人家姑娘的家中后,发现她正在和另一个童鞋相谈甚欢,这个时候你能进去见人家姑娘吗?显然不能。可能她的妈妈就在门口看着呢。此处的妈妈的职责就是保证正在进行相亲不会因为其他
本文主要是一个对各种锁的简单整理,方便后续查看回顾,毕竟锁在实际项目中用的比较少,再牛逼的知识点,老不用也记不住。好记性不如烂笔头。主要参考了李明杰的教学视频,如有侵权,联系我,我立马删除说到锁肯定是涉及多线程了,所以先简单的介绍一下iOS里的多线程GCD。 先介绍几个比较容易混淆的术语:同步:在当前线程中执行任务,不具备开启新线程的能力;异步:在新的线程中执行任务,具备开启新线程的能力;并发:多
转载
2024-08-01 17:12:34
16阅读
不知道其他人是不是有这样的想法,对于我个人而言感觉锁挺难的,只要在面试中问到锁的相关知识,心里就会咯噔一下,在度娘搜了好多零零散散的知识,还是得记录一下,省的自己以后忘记了。 首先来说说有锁的种类,下面会有用到这些。锁的种类锁的种类真的很多,这里就只列出我认为用的最多的有那几种:公平和非公平重入和不可重入互斥和读写悲观和乐观重量和轻量独享和共享分段。。。接着就来说说这几种锁的各自含义:公平和非公平
转载
2024-01-12 06:42:38
46阅读
Redis几种架构Redis发展到现在,几种常见的部署架构有:单机模式;主从模式;哨兵模式;集群模式;我们首先基于这些架构讲解Redisson普通分布式锁实现,需要注意的是,只有充分了解普通分布式锁是如何实现的,才能更好的了解Redlock分布式锁的实现,因为Redlock分布式锁的实现完全基于普通分布式锁。普通分布式锁Redis普通分布式锁原理这个大家基本上都了解,本文不打算再过多的介绍。接下来
转载
2023-05-25 15:20:13
259阅读
为什么要用锁?为了保证多线程访问一块公共资源时,对资源的保护。或者说是多线程安全 or 线程同步 但是线程同步的实现并不是只有加锁才能解决,串行队列也是一种解决方式。锁通用使用步骤//带❀的是一定要有的步骤。
❀初始化锁 | 赋予一定参数
❀加锁 | 通过一定条件加锁
等待 | 线程进入 wait 等待条件
❀处理公共资源代码 { }
❀解锁 | 给锁赋予条件
销毁锁 & 锁的属性
转载
2024-07-10 20:25:11
73阅读
本文主要介绍常见的锁,以及synchronized、NSLock、递归锁、条件锁的底层分析 锁借鉴一张锁的性能数据对比图,如下所示锁性能对比 可以看出,图中锁的性能从高到底依次是:OSSpinLock(自旋锁) -> dispatch_semaphone(信号量) -> pthread_mutex(互斥锁) -> NSLock(互斥锁) -> NSConditio
转载
2023-10-09 13:37:18
398阅读
1、NSLockNSLock 遵循 NSLocking 协议,lock 方法是加锁,unlock 是解锁,tryLock 是尝试加锁,如果失败的话返回 NO,lockBeforeDate: 是在指定Date之前尝试加锁,如果在指定时间之前都不能加锁,则返回NO@protocol NSLocking
- (void)lock;
- (void)unlock;
@end
@interface N
转载
2023-07-25 21:28:09
61阅读
锁的种类互斥锁 自旋锁互斥锁:保证在任何时候,都只有一个线程访问对象。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒;自旋锁:与互斥锁有点类似,只是自旋锁 不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环尝试,直到该自旋锁的保持者已经释放了锁;因为不会引起调用者睡眠,所以效率高于互斥锁;自旋锁缺点:调用者在未获得锁的情况下,一直运行--自旋,所以占用着CPU,如果不能
转载
2024-01-30 23:09:53
192阅读
近日工作不是太忙,刚好有时间了解一些其他东西,本来打算今天上午去体检,但是看看天气还是明天再去吧,也有很大一个原因:就是周六没有预约上!闲话少说,这里简单对锁来个简单介绍分享。
1 前言近日工作不是太忙,刚好有时间了解一些其他东西,本来打算今天上午去体检,但是看看天气还是明天再去吧,也有很大一个原因:就是周六没有预约上!闲话少说,这里简单对锁来个简单介绍
转载
2023-07-24 12:07:53
43阅读
虽然苹果手机的iOS系统整体非常流畅,而且在生态建设以及UI及交互方面做得非常出色,但是唯一的缺点就是太封闭了,无法像安卓手机那样,想要什么功能就给你提供什么功能。比如最简单实用的软件密码锁,iOS上一直没有提供。这就导致如果把手机借给别人使用的话,那么自己的秘密将会一览无余。手机一旦丢失,数据安全也是一个问题。其实我们可以通过系统的其他功能来间接地实现“密码锁”的功能,而且非常简单,快来学学!首
转载
2023-07-26 16:46:54
143阅读
MySQL是一个常用的关系型数据库管理系统,它支持多种锁类型来保证数据的一致性和并发性。在实际应用中,了解不同的锁类型以及其使用场景是非常重要的。
MySQL中常见的锁类型包括共享锁(Shared Lock)、排他锁(Exclusive Lock)、意向共享锁(Intention Share Lock)、意向排他锁(Intention Exclusive Lock)等。这些锁类型可以在不同的场景
原创
2024-06-14 04:27:44
27阅读
提示:文章先作为初版,等后续时间充足后,补充更深的内容 文章目录MySql锁的类型一、分类二、详细锁的属性锁的粒度乐观锁和悲观锁 MySql锁的类型一、分类基于锁的属性【读写】分类:共享锁【读】、排他锁【写】。基于锁的粒度【范围】分类:行级锁(innodb ) 、表级锁 ( innodb 、myisam)、页级锁( innodb引擎)、记录锁、间隙锁、临键锁。基于锁的状态分类:意向共享锁、意向排它
转载
2023-11-10 08:29:17
18阅读
什么是S-OFF? S代表 Security Lock安全锁,保护锁的意思。S-OFF就是保护关。S-ON就是保护开 Secure Lock 就是安全锁。是硬件设计商用于保护自己固件不被刷写而设计的安全锁。如果这个安全锁是关闭的,那么对手机内的闪存芯片的刷写保护就关闭了。言外之意就是可以随便刷ROM了。 而S-ON就是安全锁打开了。手机被写保护了。HTC的机器在用RUU刷机的时RUU会将安全
锁的类型有三种: 共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被
原创
2023-07-11 16:26:40
56阅读
Mysql锁类型Mysql锁类型Mysql锁类型Mysql锁类型Mysql锁类型Mysql锁类型
原创
2022-12-07 14:37:09
57阅读
# Java 锁类型的基本实现
在Java中,锁是一种用于控制对共享资源的访问的机制。理解和使用锁是多线程编程中的重要一环。在这篇文章中,我们将逐步学习如何实现Java中的不同类型的锁,包括内部锁(synchronized)和显示锁(ReentrantLock)。以下是实现过程的简要流程:
### 实现流程
| 步骤 | 描述 |
|------|--------
今天我要跟你聊聊 MySQL 的锁。数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。今天这篇文章,我会和你分享全局锁和表级锁。而关于行锁的内容,我会留着在下一篇文章中再和你详细介绍。这里需要说明的是,锁的设计比较复杂
转载
2023-10-26 21:37:02
27阅读
摘要记得面试的时候总是被问及一些java相关锁的问题,其中最常被问及的就是:锁的类型都用哪些?这篇文章主要记录常用的一些类型,以备面试中问道。锁的类型:1. 乐观锁、悲观锁乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,在Java中ja
转载
2023-10-16 23:29:13
59阅读
锁的类别:互斥锁,递归锁,条件锁,自旋锁等锁的实现方式:NSLock,NSRecursiveLock, NSConditionLock,@synchronized,GCD的信号量等下面说一下常用的几种锁:1.@synchronized:对象级别所,互斥锁,性能较差不推荐使用@synchronized(这里添加一个OC对象,一般使用self) {
这里写要加锁的代码
转载
2023-06-24 22:34:48
86阅读
一 、线程安全1.1 什么是线程安全线程操作共享数据的时候不会出现意想不到的结果就叫线程安全,否则,就是线程不安全1.2 原子属性是一定是线程安全的?原子属性只能保障 set 或者 get的读写安全,但我们在使用属性的时候,往往既有set又有get,所以说原子属性并不是线程安全的。二、 iOS中的三种锁2.1 自旋锁在访问被锁的资源的时候,调用者线程不会休眠,而是不停循环在那里,直到被锁
转载
2024-05-15 21:46:56
72阅读