标签:排他锁

编程技术

轻松构建微服务之分布式锁

xubiao.zhuang 发布于 2019-05-21

在多线程情况下访问资源,我们需要加锁来保证业务的正常进行,JDK中提供了很多并发控制相关的工具包,来保证多线程下可以高效工作,同样在分布式环境下,有些互斥操作我们可以借助分布式锁来实现两个操作不能同时运行,必须等到另外一个任务结束了把锁释放了才能获取锁然后执行,因为跨JVM我们需...

阅读(11)评论(0)赞 (0)

Java

ReentrantReadWriteLock(可以重入的读写锁)源码浅析

5

刘莉莉 发布于 2019-05-14

一、ReentrantReadWriteLock简介 上一篇文章我们将讲到的ReentrantLock和Synchronized锁,都属于排他锁,也就是说只会有一个线程获取锁;而我们今天讲的ReentrantReadWriteLock(读写锁)是支持多个线程同时获取锁的在获取读锁...

阅读(19)评论(0)赞 (0)

Java

Java应用集群下的定时任务处理方案(mysql)

1

zhuangli 发布于 2019-05-07

今天来说一个Java多机部署下定时任务的处理方案。 需求 : 有两台服务器同时部署了同一套代码, 代码中写有spring自带的定时任务,但是每次执行定时任务时只需要一台机器去执行。 当拿到这个需求时我脑子中立马出现了两个简单的解决方案: 利用ip进行判断, 两台机器ip肯定不一样...

阅读(30)评论(0)赞 (0)

Java

【五星推荐】每个Java工程师,都应该掌握数据库事务!

13

likai 发布于 2019-05-02

还没关注? 快动动手指! 聊技术、论职场! 为IT人打造一个“有温度”的 狸猫技术窝 目录 认识事务 1.1 为什么需要数据库事务 1.2 什么是数据库事务 1.3 事务如何解决问题 1.4 事务的ACID特性以及实现原理概述 并发异常与并发控制 2.1 常见的并发异常 2.2 ...

阅读(29)评论(0)赞 (0)

Java

J.U.C|读-写锁ReentrantReadWriteLock

5

尖兵 发布于 2019-04-30

一、写在前面 在上篇我们聊到了可重入锁(排它锁)ReentrantLcok ,具体参见 《J.U.C|可重入锁ReentrantLock》 ReentrantLcok 属于排它锁,本章我们再来一起聊聊另一个我们工作中出镜率很高的读-写锁。 二、简介 重入锁ReentrantLoc...

阅读(49)评论(0)赞 (0)

编程技术

最全的微服务知识科普

24

yeseng 发布于 2019-04-30

微信公众号: 内核小王子 关注可了解更多关于数据库,JVM内核相关的知识; 如果你有任何疑问也可以加我微信pigpdong 点击阅读原文可以获取思维导图。(由于图片太大)有对数据库和微服务以及JVM核心知识的总结,大家可以保存下来 微服务 好处:实现跨团队的解藕,实现更高的并发(...

阅读(60)评论(0)赞 (0)

Java

java并发编程 | 锁详解:AQS,Lock,ReentrantLock,ReentrantReadWriteLock

7

hanze 发布于 2019-04-29

锁是用来控制多个线程访问共享资源的方式, java 中可以使用 synchronized 和 Lock 实现锁的功能 synchronized 是java中的关键字,隐藏获取和释放锁的过程, Lock 是java中的接口,需要主动的获取锁和释放锁, synchronized 是排...

阅读(25)评论(0)赞 (0)

Java

LinkedBlockingQueue源码解析

1

yeseng 发布于 2019-04-15

上一篇博客,我们介绍了ArrayBlockQueue,知道了它是基于数组实现的有界阻塞队列,既然有基于数组实现的,那么一定有基于链表实现的队列了,没错,当然有,这就是我们今天的主角:LinkedBlockingQueue。ArrayBlockQueue是有界的,那么LinkedB...

阅读(33)评论(0)赞 (0)

Java

ReentrantReadWriteLock 类

邓龙华 发布于 2019-04-09

ReentrantReadWriteLock 类, 顾名思义, 是一种读写锁, 它是 ReadWriteLock 接口的直接实现, 该类在内部实现了具体 独占锁特点的写锁 , 以及具有 共享锁特点的读锁 , 和 ReentrantLock 一样, ReentrantReadWri...

阅读(41)评论(0)赞 (0)

Java

ArrayBlockQueue源码解析

4

小丁 发布于 2019-04-07

清明节和朋友去被抖音带火的一个餐厅,下午两点钟取晚上的号,前面已经有十几桌了,四点半餐厅开始正式营业,等轮到我们已经近八点了。餐厅分为几个区域,只有最火的区域(在小船上)需要排号,其他区域基本上是随到随吃的,最冷清的区域几乎都没什么人。菜的价格异常的贵,味道也并不好。最后送出两张...

阅读(33)评论(0)赞 (0)

Java

一文彻底搞懂面试中常问的各种 “锁”

4

hellas 发布于 2019-04-02

前言 锁,顾名思义就是锁住一些资源,当只有我们拿到钥匙的时候,才能操作锁住的资源。在我们的Java,数据库,还有一些分布式的环境中,总是充斥着各种各样的锁让人头疼,例如“公平锁”、“自旋锁”、“读写锁”、“分布式锁”等等。 其实真实的情况是,锁并没有那么多,很多概念只是从不同的功...

阅读(46)评论(0)赞 (0)

Java

一文带你快速掌握AQS

13

likai 发布于 2019-03-15

AbstractQueuedSynchronizer 抽象队列同步器 ,简称为 AQS ,可用于构建 阻塞锁 或者其他相关 同步器 的基础框,是Java并发包的基础工具类。通过 AQS 这个框架可以对 同步状态原子性管理、线程的阻塞和解除阻塞、队列的管理 进行统一管理。 AQS ...

阅读(75)评论(0)赞 (0)

Java

JAVA基础学习之-AQS的实现原理分析

xubiao.zhuang 发布于 2019-03-11

AbstractQueuedSynchronizer是JUC的核心框架,其设计非常精妙。 使用了Java的模板方法模式。 首先试图还原一下其使用场景: 对于排他锁,在同一时刻,N个线程只有1个线程能获取到锁;其他没有获取到锁的线程被挂起放置在队列中,待获取锁的线程释放锁后,再唤醒...

阅读(72)评论(0)赞 (0)

Java

JAVA并发编程–2.synchronied实现原理

1

刘莉莉 发布于 2019-01-15

synchronied实现原理 虚拟机锁原理 虚拟机中对象头部信息 /*hotspot/src/share/vm/oops/oop.hpp*/ class oopDesc { friend class VMStructs; private: volatile markOop _m...

阅读(115)评论(0)赞 (0)

Java

3年Java工程师面试必问!这些题一定要会!

3

yeseng 发布于 2019-01-13

前言 要说面试,程序员烦,公司也烦,面试官也烦,但没办法,鱼龙混杂的人太多,理论好写不了代码的程序员着实让公司头疼,因而面试的题目也越来越刁钻! 不过凡事都有两面性,面试也是激励程序员多看面试题,掌握知识不是吗? 以下推荐的Java面试题目,希望可以帮大家积累面试经验温习技术知识...

阅读(129)评论(0)赞 (0)

Java

CyclicBarrier – 同步屏障实现分析

1

hellas 发布于 2018-12-21

CyclicBarrier 是可循环使用的屏障,主要功能是让一组线程到达一个屏障时被阻塞,直到最后一个线程到达屏障时,屏障才会打开;所有被屏障拦截的线程才会继续执行。 使用示例 public class CyclicBarrierTest { // 线程个数 private in...

阅读(117)评论(0)赞 (0)

Java

打通 Java 任督二脉 —— 并发数据结构的基石

12

刘莉莉 发布于 2018-12-13

每一个 Java 的高级程序员在体验过多线程程序开发之后,都需要问自己一个问题,Java 内置的锁是如何实现的?最常用的最简单的锁要数 ReentrantLock,使用它加锁时如果没有立即加成功,就会阻塞当前的线程等待其它线程释放锁之后再重新尝试加锁,那线程是如何实现阻塞自己的?...

阅读(117)评论(0)赞 (0)

Java

备战金九银十、阿里的面试官都喜欢问哪些问题?

xubiao.zhuang 发布于 2018-12-01

金九银十是招聘的旺季,小编在这里也给大家整理了一套阿里面试官最喜欢问的问题或者出场率较高的面试题,助校招或者社招路上的你一臂之力! 首先我们需要明白一个事实,招聘的一个很关键的因素是在给自己找未来的同事,同级别下要找比自己优秀的人,面试是一个双向选择的过程,也是一个将心比心去沟通...

阅读(137)评论(0)赞 (0)