从理解的难易E度角度Q从低到高)下面讲基于redis实现分布锁代码:RedisTemplate 客户?lettuce
数据?> ~存 > Zookeeper
从实现的复杂性角度(从低到高Q?br />
Zookeeper > ~存 > 数据?br />
从性能角度Q从高到低)
~存 > Zookeeper >= 数据?br />
从可靠性角度(从高CQ?br />
Zookeeper > ~存 > 数据?
Zzookeeper实现下期补上Q?br />
介绍分布式锁文章写的比较详细Q?br />https://blog.csdn.net/u010963948/article/details/79006572
java.util.function.*
java.util.function 它包含了很多接口Q用来支?Java?函数式编E,它们大致分ؓ五类Q?/span>
xxx()
Q表CҎl在已有的线E中执行Q?/span>xxxAsync()
Q表C将异步在线E池中执行?/span>ForkJoinPool.commonPool()
U程池中执行的,带executor 参数的?nbsp;executorU程池异步执行?/span>Function
Q即接受前一个计的l果Q应用函C后返回一个新的结?/span>Consumer
Q即接受前一个计的l果Q执行消费后不返回有意义的?/span>Runnable
Q即忽略前一个计的l果Q仅{待它完成后执行动作4:completableFuture 配合框架使用
因ؓ自从JDK8以后增强了多U程的用便L度:http://www.aygfsteel.com/zzzlyr/articles/435305.html
1QJDk8 的函数式接口和lambda表过?/span>
2QcompletableFuture ?Future cȝ增强?/span>
q只是JDK 基础包中的功能,现在大部分开发都在用框?java 现在基本上都在用spring框架Q因为JDK基础包中的功能还是不如框架用方便,下边文章详细介绍 springboot中对JDK基础包中多线E功能配|和使用?
1Q今天偶想起了泛型Q都快忘C在次ȝ下!
JAVA 泛型分ؓQ泛型类Q泛型接口,泛型ҎQ泛型承;
泛型q可以限制参数类型的上下限等
1Q自定义cL?/span>
public class GenericTest<T>
2: 泛型接口(也可以自定义)Q泛型?/span>
public interface List<E> extends Collection<E>
3Q泛型方?/span>
public <T> List<T> getListBykey(String key, Class<?> T)
4Q泛型限制参数类型上下限Q例泛型cd只能?/span>String cd子类Q?/span>
上限
public class GenericTest<?extends String>
下限Q?span style="font-size: 18pt; line-height: 150%; font-family: Verdana, sans-serif;">
public class GenericTest<? super String>
其中?是通配W,代表Lcd