标签:排他锁

Java

如果有人问你 Dubbo 中注册中心工作原理,就把这篇文章给他

11

xiaoli.he 发布于 2019-08-17

开篇首先想思考一个问题,没有注册中心 Dubbo 还能玩下去吗? 注册中心作用 当然可以,只要知道服务提供者地址相关信息,消费者配置之后就可以调用。如果只有几个服务,这么玩当然没问题。但是生产服务动辄成千上百,如果每个服务都需要手写配置信息,想象一下是多么麻烦。 好吧,如果上面的...

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

Java

国内Java面试总是问StringBuffer,StringBuilder区别是啥?档次为什么这么低?

1

小丁 发布于 2019-08-13

这个问题只是开个场,热个身而已啊。 StringBuffer,StringBuilder区别是啥? 什么是线程安全? 如何保证线程安全? 什么是锁?死锁? synchronized的实现原理是什么? 有了synchronized,还要volatile干什么? synchroniz...

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

Java

java线程-调度

2

zhuangli 发布于 2019-08-11

并发并不一定依赖多线程,但Java里谈论并发大多数都与线程脱不开关系。 线程是比进程更轻量级的调度执行单位 ,线程的引入可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址,文件IO等),又可以独立调度(线程是CPU调度的基本单位)。 Thread类的所有...

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

Java

Java并发指南开篇:Java并发编程学习大纲

2

yanxinchi 发布于 2019-08-11

Java并发指南开篇:Java并发编程学习大纲 Java并发编程一直是Java程序员必须懂但又是很难懂的技术内容。 这里不仅仅是指使用简单的多线程编程,或者使用juc的某个类。当然这些都是并发编程的基本知识,除了使用这些工具以外,Java并发编程中涉及到的技术原理十分丰富。为了更...

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

Java

写给 Java 工程师的数据库事务!

17

xubiao.zhuang 发布于 2019-08-07

中华石杉 老师最新力作: 《21天互联网Java进阶面试训练营》 (分布式篇) 彻底解决 Java 工程师 面试一线互联网大厂 的各种痛点 扫描下方二维码, 试听课程 : (详细课程目录参见文末) 认识事务 1.1 为什么需要数据库事务 转账是生活中常见的操作,比如从A...

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

Java

Java高并发之锁的使用以及原理浅析

18

小丁 发布于 2019-08-04

锁像synchronized同步块一样,是一种线程同步机制。让自Java 5开始,java.util.concurrent.locks包提供了另一种方式实现线程同步机制——Lock。那么问题来了既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock呢...

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

Java

面试官,你别再问了——JAVA之内存模型(简化版)

4

刘莉莉 发布于 2019-06-23

在面试之时,很多面试官都喜欢问道,JMM清楚吗?说说什么是内存可见性,什么是重排序?synchronized、volatile和final中的原理?等等诸如此类的问题。而网上一搜,巴啦啦一大堆,东西比较乱,也很难把面试官变相问题回答清楚。终于,下定决心给大家捋一捋JAVA简化版的...

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

Java

Java并发核心浅谈(二)

songhua.gao 发布于 2019-06-16

回顾 在上一篇Java并发核心浅谈 我们大概了解到了 Lock 和 synchronized 的共同点,再简单总结下: Lock 主要是自定义一个 counter,从而利用 CAS 对其实现原子操作,而 synchronized 是 c++ hotspot 实现的 monitor...

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

Java

Java并发编程的艺术(九)——Java中的锁(4)

yeseng 发布于 2019-06-13

重入锁ReentrantLock,即支持重进入的锁,它表示同一线程能够重复对资源(锁)进行加锁操作。此外,ReentrantLock还有公平和非公平之分。 1.2 重入锁存在的意义 设想这样一种情况:当独占式锁不支持重入时,在我们已经获得锁的情况下,在同一个线程再次获取该锁,此时...

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

Java

Java并发编程笔记之读写锁 ReentrantReadWriteLock 1.8 原理

zhuangli 发布于 2019-05-29

重入锁ReentrantLock是排他锁,排他锁在同一时刻仅有一个线程可以进行访问,但是在大多数场景下,大部分时间都是提供读服务,而写服务占有的时间较少。然而读服务不存在数据竞争问题,如果一个线程在读时禁止其他线程读势必会导致性能降低。所以就提供了读写锁。 读写锁维护着一对锁,一...

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

编程技术

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

xubiao.zhuang 发布于 2019-05-21

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

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

Java

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

5

刘莉莉 发布于 2019-05-14

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

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

Java

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

1

zhuangli 发布于 2019-05-07

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

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

Java

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

13

likai 发布于 2019-05-02

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

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

Java

J.U.C|读-写锁ReentrantReadWriteLock

5

尖兵 发布于 2019-04-30

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

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

编程技术

最全的微服务知识科普

24

yeseng 发布于 2019-04-30

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

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

Java

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

7

hanze 发布于 2019-04-29

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

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

Java

LinkedBlockingQueue源码解析

1

yeseng 发布于 2019-04-15

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

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