JAVA
岑远
这个作者很懒,什么都没留下…
展开
-
SpringBoot Redis实现分布式锁
SpringBoot Redis实现分布式锁 工作上遇到一个问题,在几乎同时插入了两条相同的数据,正常的逻辑是如果数据库中没有就插入,有就做修改数据的操作。分析日志发现,在同一时间,有两个相同的HTTP请求到服务器,而我们的代码先执行select 语句,然后执行insert语句,可能这两个请求同时select,发现数据库中没有,所有都执行了insert语句。 针对这个问题,我能想到可以有如下几...原创 2018-02-09 11:20:12 · 8760 阅读 · 4 评论 -
防雪崩利器:熔断器 Hystrix 的原理与使用
前言 【转载自:https://segmentfault.com/a/1190000005988895】 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应. 为了应对服务雪崩, 一种常见的做法是手动服务降级. 而Hystrix的出现,给我们提供了另一种选择. 服务雪崩效应的定义 服务雪崩效应是一种因服务提供者的不可用导致服务调用者的不可用,...转载 2018-03-05 17:24:07 · 176 阅读 · 0 评论 -
如何判断开启的多个线程都运行结束了?
package com.cdvcredit.vcar.job.scheduler; import java.util.Random; import java.util.concurrent.Callable; import java.util.concurrent.CompletionService; import java.util.concurrent.ExecutionException;...原创 2018-04-04 10:21:18 · 4060 阅读 · 0 评论 -
Java知识栈
Java 知识 基本类型 String Integer 集合框架 ArryList HashSet HashMap ConcurrentHashMap 多线程 认识cpu、核心与线程 并发编程 Java线程的几种状态 Java线程的创建方式 Java并发编程中的锁 NIO 深入理解ByteBuffer Java NIO 详解 泛型 反射 类...原创 2018-04-19 14:51:14 · 417 阅读 · 0 评论 -
Java线程的创建方式
Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。Java可以用三种方式来创建线程,如下所示: 继承Thread类创建线程 实现Runnable接口创建线程 使用Callable和Future创建线程 继承Thread类创建线程 如下所示,继承Thread类,重写父类的run方法 public class TestThread extend...原创 2018-04-19 15:49:58 · 224 阅读 · 0 评论 -
用Eclipse可能导致的编码问题
最近在用mina 做项目,需要用到mina的heartbeat 功能,于是上网查到了用法,并附有原代码。照着敲了一遍,运行始终不对!把别人的代码copy进去就没有问题。不知道为什么,后来又下了一个对比工具来对比代码有什么不同,发觉没有什么问题。后来终于找到原因了,文件的编码方式导致了运行结果的不一样。...原创 2014-02-09 16:18:51 · 140 阅读 · 0 评论 -
JAVA实现生产者消费者问题
第一步,定义一个商品类。 package com.moon.thread; /** * * @author cenyuan * 商品类 */ public class Product { private String name; private String id; public Product() { } public Pro...原创 2013-11-01 14:56:48 · 101 阅读 · 0 评论