美文网首页
android 多线程 — 谁的锁,锁的谁

android 多线程 — 谁的锁,锁的谁

作者: 前行的乌龟 | 来源:发表于2019-04-25 18:36 被阅读0次
性感的小吊带 ~

编程技术中很多看似简单的概念其实大多都大有可挖或是容易忽略的部分,这些容易让人忽略的其实更重。学习多线程,大家总是说锁怎么样,怎么样,加什么锁,什么时候加,什么时候释放,那么大家有没有想过锁锁住的是哪些东西

我们知道 synchronized、ReentrantLock 这些锁手段,synchronized 使用的是对象锁,类锁,ReentrantLock 本身就是锁,绝大部分资料都是说的是锁,大家想没想过, synchronized、ReentrantLock 锁住的是谁?其实答案很简单,本质上锁锁住的资源,使用上锁锁住的是一段代码,我们平时写的就是代码,所以锁锁住的其实就是代码本身,至少在表现上就是这样的

上厕所 - 这我们都熟悉无比了吧,公共场所的厕所一般坑位都有限,前面的进去了上了锁,我们后来的就只能排队等着,得排好队伍紧盯坑位,要不肯定有加塞的。大家不觉得这和我们学习的多线程其实一模一样吗?锁锁上的是门,而我们开不开门就进不去坑位,坑位好比锁锁住的资源,而坑位所在的房子就好比是坑位所在的那段代码,因为坑位加了锁,就相当坑位的房子我们进不去,所以锁在日常使用上的表现就是锁住了这段代码

// 1.  synchornized 锁住的是 someMethod 这个方法里的代码,除了自己,任何人想用这个方法的代码都会被阻塞
public synchornized someMethod(){
    ...
}

// 2. synchronized 锁住的是里面的代码,锁可以不同,但是锁住的不会变
synchronized(不同的锁对象){
    ...
}

// 3. ReentrantLock 本身就是锁,锁主的是 increase 这个方法的代码
lock.lock();
increase();
lock.unlock();

相关文章

  • android 多线程 — 谁的锁,锁的谁

    编程技术中很多看似简单的概念其实大多都大有可挖或是容易忽略的部分,这些容易让人忽略的其实更重。学习多线程,大家总是...

  • 鏖战

    这也锁,谁之过?

  • Android并发编程与归纳总结

    锁 锁分为 类锁 对象锁 显示锁image.png写在函数上的锁,不用去设置锁的谁,会自动去寻找一把锁,并且如果是...

  • 关于并发编程的博客收藏

    Android并发编程 开篇http://ddrv.cn/a/23502/ Android并发编程 多线程与锁ht...

  • 浅析乐观锁、悲观锁与CAS

    乐观锁与悲观锁 处理多线程并发访问最常用的就是加锁,锁又分成乐观锁和悲观锁。 悲观锁 在多线程访问共享资源时,同时...

  • 起底多线程同步锁(iOS)

    起底多线程同步锁(iOS) 起底多线程同步锁(iOS)

  • [转载]# 公平锁,非公平锁,乐观锁,悲观锁 公平锁/非公平锁(多线程执行顺序的维度) 概念理解 公平锁:加锁前先...

  • 理解锁以及分布式锁

    锁 分布式锁 distributed locks 资源有限,争抢难免,最简单粗暴的办法是谁的拳头大谁就可以抢到最好...

  • 多线程(四)

    上篇多线程(三)我们看了多线程的安全隐患 以及各种锁的简单使用,接下来我们来看看锁的比较、以及自旋锁、互斥锁比较 ...

  • zookeeperDistributedLock

    分布式锁: 分布式锁是什么? 通常说的锁是单进程多线程的锁,在多线程并发编程中用于线程之间的数据共享 分布式锁 指...

网友评论

      本文标题:android 多线程 — 谁的锁,锁的谁

      本文链接:https://www.haomeiwen.com/subject/zyxtnqtx.html