摘要:
一、CountDownLatch jdk提供的一个同步辅助类,在完成一组在在其他线程中执行的操作前,允许一个或者多个其他的线程等待,通过调用 await() 方法阻塞,直到由于 countDown() 方法的调用而导致当前计数达到零,之后所有等待线程被释放。 二、计算多个线程执行时间 阅读全文
摘要:
一、什么是原子性 简单的可以理解为:操作是不可再分割的,比如; 但是i++的操作是可以再分的,比如: 上面的代码在多线程环境下取值是有问题的,比如: 结果: 这种问题当然可以通过加synchronized 关键字来解决,那有没有另外一种方案呢,答案肯定是有的,且在jdk1.5的时候就有了,那就是At 阅读全文
摘要:
一、Volatile关键字 作用: 二、简单使用 阅读全文
摘要:
一、Callable接口 与继承Thread和实现Runnable接口方式创建线程相比,有以下两点不同: 可以有返回值,并且能够获取返回值 call()方法允许抛出异常 二、简单使用 三、配合线程池的简单使用 阅读全文
摘要:
一、为什么使用lambda Lambda 是一个 匿名函数,我们可以把 Lambda表达式理解为是 一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。 二、lambda语法 Lambda 表达式在Java 语言 阅读全文
摘要:
一、添加依赖 二、添加配置 三、生产者和消费者 Producer Consumer Controller 四、结果 github地址 阅读全文
摘要:
一、单机配置 properties配置 启动类加 具体的方法上加 这样的话,redis 中key值即为userList,value 为方法的返回值。pojo可能会需要序列化。 二、集群配置 properties配置 RedisClusterConfig 使用时直接 阅读全文
摘要:
百度百科: Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有 阅读全文
摘要:
@Component public class BaseCode { //应用key public static String APP_KEY; //应用密钥 public static String APP_SECRET; //不带参数的请求地址 public static String REQUEST_URL; @Value(... 阅读全文
摘要:
utf8_general_ci --不区分大小写 utf8_bin--区分大小写 阅读全文