- 博客(10)
- 资源 (1)
- 收藏
- 关注
转载 一文秒懂 Java CompletableFuture ( 下 )
上一章节中我们讲解了 CompletableFuture 的一些基本用法,比如如何使用和如何处理异步计算结果。本章节我们继续,主要讲解如何使用 CompletableFuture 来组合异步计算的结果组合 FuturesCompletableFuture API 最吸引人的部分,应该是能够在一系列链式计算步骤中组合 CompletableFuture 实例。这种链式的结果本身就是Compl...
2019-12-26 18:07:02 181
转载 一文秒懂 Java CompletableFuture ( 上 )
本文我们来了解下 Java 8 引入的 CompletableFuture 类,了解下该类提供的功能和用例。Java 中的异步计算异步计算很难推理的,因为我们的大脑是同步的,会将任何计算看成是一系列的同步计算。我们在实现异步计算时,往往会把回调的动作分散在代码中或者深深地嵌套在彼此内部,这种情况下,当我们需要处理其中一个步骤中可能发生的错误时,情况变得更糟。人生的一大悲剧是,尽管 ...
2019-12-26 18:03:16 246
转载 redis相关以及redis做分布式锁可能出现的问题
前言:有一篇文章对redis的介绍不错,拿来加深印象。在Redis中,允许用户设置最大使用内存大小server.maxmemory,当Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。1.volatile-lru:从已设置过期的数据集中挑选最近最少使用的淘汰2.volatile-ttr:从已设置过期的数据集中挑选将要过期的数据淘汰3.volatile-random:...
2019-12-25 09:38:33 1932
原创 Redis的Key过期机制
这个东西之前配置过,今天本来记录一下,加深印象,结果忙了一下午,问题出在redis的配置中,即将崩溃,这里提个醒,redis的配置文件中,对于每一行配置前面别有空格,正确做法一直顶到头,这个真是恶心的配置,一点都不智能,因为开启key过期要修改配置文件,所以在修改的时候别忘了这个坑。我使用的windows版本的redis为Redis-x64-3.2.100,使用的是.msi版本的,使用...
2019-12-23 17:45:14 1507
原创 分布式任务调度中心
xxl的网址https://www.xuxueli.com/page/projects.html总结的非常好,可以借鉴一下https://www.cnblogs.com/ysocean/p/10541151.html
2019-12-17 18:09:06 594
转载 关于Runtime.getRuntime().exec(),产生阻塞的2个陷阱
背景相信做java服务端开发的童鞋,经常会遇到Java应用调用外部命令启动一些新进程来执行一些操作的场景,这时候就会使用到Runtime.getRuntime().exec(),然而这个方法如果不谨慎很容易掉进陷阱。我们的一个PDF转码服务就踩到了这个坑掉进陷阱,这个转码服务主要是对pdf进行加密和转码成swf。这个服务上线后大部分时间都是稳定运行的,但是隔一段时间就会死掉,然后人肉手动重...
2019-12-17 18:05:59 1284
转载 【Java并发】ReadWriteLock读写锁的使用
说到Java并发编程,很多开发第一个想到同时也是经常常用的肯定是Synchronized,但是小编这里提出一个问题,Synchronized存在明显的一个性能问题就是读与读之间互斥,简言之就是,我们编程想要实现的最好效果是,可以做到读和读互不影响,读和写互斥,写和写互斥,提高读写的效率,如何实现呢?Java并发包中ReadWriteLock是一个接口,主要有两个方法,如下:pu...
2019-12-16 14:20:04 163
转载 Java中的双重检查锁(double checked locking)
在实现单例模式时,如果未考虑多线程的情况,就容易写出下面的错误代码:public class Singleton { private static Singleton uniqueSingleton; private Singleton() { } public Singleton getInstance() { if (null == u...
2019-12-03 17:52:25 135
转载 Java-分布式锁三种实现方式介绍
一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美12的运行,毫无Bug!注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间!后来业务发展,需要做集群,一个应用需要部署到几...
2019-12-02 11:27:56 878
原创 使用Redisson实现分布式锁(高清)
1、maven坐标 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.5.7</version>...
2019-12-02 11:24:29 712
gerrit-2.10.3.1
2018-08-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人