
并发编程
LionArt
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ConcurrentHashMap 从Java7 到 Java8的改变
一、关于分段锁1.分段锁发展概况集合框架很大程度减少了java程序员的重复劳动。在Java多线程环境中,以线程安全的方式使用集合类是一个首先考虑的问题。能够保证线程安全的哈希表中,ConcurrentHashMap是大家都熟知的,也知道它内部使用了分段锁。然而,进入到Java8时代,分段锁成为了历史。2.新版本ConcurrentHashMap在Java8的Concurrent...转载 2019-03-17 19:33:00 · 370 阅读 · 0 评论 -
浅谈,分布式事务与解决方案
前言 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。产生原因数据库分库分表: 当数据库单表一年产...转载 2019-03-13 12:17:49 · 452 阅读 · 0 评论 -
分布式系统的接口幂等性设计
在微服务架构下,我们在完成一个订单流程时经常遇到下面的场景:一个订单创建接口,第一次调用超时了,然后调用方重试了一次 在订单创建时,我们需要去扣减库存,这时接口发生了超时,调用方重试了一次 当这笔订单开始支付,在支付请求发出之后,在服务端发生了扣钱操作,接口响应超时了,调用方重试了一次 一个订单状态更新接口,调用方连续发送了两个消息,一个是已创建,一个是已付款。但是你先接收到已付款,然...转载 2019-03-13 12:19:49 · 185 阅读 · 0 评论 -
如何正确地停止一个线程?
停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。在java中有以下3种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 使用stop方法强行终止,但是不推荐这个方法,因...转载 2019-06-18 11:19:11 · 282 阅读 · 0 评论 -
ReentrantLock的使用
ReentrantLock(重入锁)public class MyService { private Lock lock = new ReentrantLock(); public void testMethod() { lock.lock(); for (int i = 0; i < 5; i++) { Sy...转载 2019-03-17 19:08:46 · 454 阅读 · 0 评论 -
多线程(互斥锁、读写锁、条件变量、信号量、自旋锁)相关
概述同步和互斥在多线程和多进程编程中是一个基本的需求,互相协作的多个进程和线程往往需要某种方式的同步和互斥。POSIX定义了一系列同步对象用于同步和互斥。同步对象是内存中的变量属于进程中的资源,可以按照与访问数据完全相同的方式对其进行访问。默认情况下POSIX定义的这些同步对象具有进程可见性,即同步对象只对定义它的进程可见;但是通过修改同步对象的属性可以使得同步对象对不同的进程可见,具转载 2017-08-22 14:52:17 · 3462 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java转载 2017-08-22 15:32:22 · 820 阅读 · 0 评论 -
一致性哈希算法(Consistent Hashing)
应用场景这里我先描述一个极其简单的业务场景:用4台Cache服务器缓存所有Object。那么我将如何把一个Object映射至对应的Cache服务器呢?最简单的方法设置缓存规则:object.hashCode() % 4。Cache 0:object.hashCode() % 4 == 0Cache 1:object.hashCode() % 4 ==转载 2017-09-15 14:13:24 · 261 阅读 · 0 评论 -
Java并发——Synchronized关键字和锁升级,详细分析偏向锁和轻量级锁的升级
一、Synchronized实现原理1、Synchronized锁的3中形式:Synchronized修饰普通同步方法:锁对象当前实例对象;Synchronized修饰静态同步方法:锁对象是当前的类Class对象;Synchronized修饰同步代码块:锁对象是Synchronized后面括号里配置的对象;2、Synchronized在JVM里的实现那么Synchronized在JVM里是怎么实现...转载 2018-06-30 14:39:51 · 828 阅读 · 0 评论