多线程/并发
文章平均质量分 79
Java 多线程/并发 相关
hh6plus
这个作者很懒,什么都没留下…
展开
-
本地消息表实现最终一致性-案例
作者提供本地消息表案例,解决最终一致性问题。 link:https://segmentfault.com/a/1190000012415698 以下为原文。 背景 传统的单体应用不会横跨多个数据库,可以通过单机事务保证一致性。然而在海量数据的场景下,我需要对数据库做拆分,即分库分表,而Cobar、MyCat这类分库分表中间件并不提供分布式事务的特性,并且基于二阶段提交的分布式事务性能较差,对于大多数业务场景来说,并不需要强一致,只需要保证最终一致性即可。 实践 下面我们举个下订单的场景,总共有.转载 2020-09-16 11:33:49 · 702 阅读 · 0 评论 -
分布式事务-本地消费表 实践思路
本地消息表 这种实现方式的思路,其实是源于 ebay,后来通过支付宝等公司的布道,在业内广泛使用。其基本的设计思想是将远程分布式事务拆分成一系列的本地事务。如果不考虑性能及设计优雅,借助关系型数据库中的表即可实现。 举个经典的跨行转账的例子来描述。 第一步伪代码如下,扣款 1W,通过本地事务保证了凭证消息插入到消息表中。 第二步,通知对方银行账户上加 1W 了。那问题来了,如何通知到对方呢? 通常采用两种方式: 采用时效性高的 MQ,由对方订阅消息并监听,有消息时自动触发事件 采用定时轮询转载 2020-09-15 21:38:46 · 198 阅读 · 0 评论 -
并发编程:volatile关键字解析
转自:https://www.cnblogs.com/dolphin0520/p/3920373.html 以下是原文。 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关.转载 2020-09-09 19:24:12 · 97 阅读 · 0 评论 -
java常用的线程池
线程池 ThreadPoolTaskExecutor是一种基于Springframework的常用线程池,包含了java.util.concurrent的ThreadPoolExecutor(非继承)。 它有以下几个常用的参数 corePoolSize 核心池数量,即线程池在初始化后,维护的线程数。 queueCapacity原创 2017-03-17 19:52:28 · 394 阅读 · 0 评论 -
Runnable, Callable, Future, ListenableFuture与FutureTask,例程
Runnable,Callable,Future和FutureTask都是java为实现多线程编程设计的类。 1. 例程 二话不说,先上例程。 1. 实现Runnable接口,无返回值(Thread,线程池) //直接new Runnable接口,实现全部抽象方法即可(匿名类) //如果此类需要复用,可以单独定义类,实现Runnable接口 Runnable myProcess...原创 2017-03-31 19:20:00 · 711 阅读 · 0 评论 -
ListableFuture简介及使用
转自:https://www.cnblogs.com/tanqianqian/p/5974996.html。 以下为原文。 ListenableFuture顾名思义就是可以监听的Future,它是对java原生Future的扩展增强。我们知道Future表示一个异步计算任务,当任务完成时可以得到计算结果。如果我们希望一旦计算完成就拿到结果展示给用户或者做另外的计算,就必须使用另转载 2018-03-21 12:02:09 · 632 阅读 · 0 评论