![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
xiaosen-L
欢迎关注微信公众号:xiaosen_javashare
展开
-
Java多线程学习(六)——Lock的使用
锁是用于通过多个线程控制对共享资源的访问的工具。通常,锁提供对共享资源的独占访问:一次只能有一个线程可以获取锁,并且对共享资源的所有访问都要求首先获取锁。 但是,一些锁可能允许并发访问共享资源,如ReadWriteLock的读写锁。Java5之后并发包中新增了Lock接口以及相关实现类来实现锁功能。虽然synchronized方法和语句的范围机制使得使用监视器锁更容易编程,并且有助于避免涉及锁的...原创 2019-11-08 07:02:38 · 148 阅读 · 0 评论 -
SpringBoot连接Elasticsearch实战总结
记一次线上的elasticsearch查询采坑第一次使用elasticsearch,于是从网上找轮子复制粘贴。早好轮子测试完毕,上线。可是几天下来发现接口响应时间一直都偏高(默认的超时时间是500ms),所以就不停的对代码优化,缩短时间。但是到最后代码已经不能再优化了,响应时间依然没有明显的下降趋势,甚至在高峰期会严重超时。接下来会慢慢讲解elasticsearch使用优化。Spring Bo...原创 2019-09-17 08:26:20 · 3923 阅读 · 0 评论 -
Java多线程学习(五)——等待通知机制
等待通知机制的实现方法wait()的作用是使当前线程进行等待,wait()方法是Object类的方法,该方法用来将当前线程放到“预执行队列”,并在wait()所在的代码处停止执行,直到接到通知或中断为止。只能在同步方法或同步快中使用wait()方法,执行wait()后,当前线程释放锁。方法notify()也要在同步方法或同步快中调用,在调用前也必须获得该对象的的对象级别锁。该方法用来通知那些可...原创 2019-09-11 08:31:49 · 167 阅读 · 0 评论 -
简洁又快速地处理集合——java8 Stream(下)
上一篇文章我讲解 Stream 流的基本原理,以及它的基本方法使用,本篇文章我们继续讲解流的其他操作值得注意的是:学习 Stream 之前必须先学习 lambda 的相关知识。本文也假设读者已经掌握 lambda 的相关知识。本篇文章主要内容:一种特化形式的流——数值流Optional 类如何构建一个流collect 方法并行流相关问题一. 数值流前面介绍的如int sum...转载 2019-09-10 08:43:33 · 300 阅读 · 1 评论 -
简洁又快速地处理集合——java8 Stream(上)
Java 8 发布至今也已经好几年过去,如今 Java 也已经向 11 迈去,但是 Java 8 作出的改变可以说是革命性的,影响足够深远,学习 Java 8 应该是 Java 开发者的必修课。今天给大家带来 Java 8 Stream 讲解,为什么直接讲这个,是因为只要你学完,立刻就能上手,并能让它在你的代码中大展身手。值得注意的是:学习 Stream 之前必须先学习 lambda 的相关知...转载 2019-09-09 08:34:30 · 141 阅读 · 0 评论 -
Java多线程学习(四)——volatile关键字
volatile关键字当用volatile关键字声明变量的时候,就等于告诉虚拟机,这个变量极有可能被某些程序或者线程修改,为了保证比那辆被修改后应用程序范围内的所有线程可以看到这个改动,虚拟机必须采用一些方法保证这个变量的可见性。volatile与死循环public class PrintString { private boolean isContinue = true; ...原创 2019-06-28 07:39:13 · 126 阅读 · 0 评论 -
设计模式(四)——搞懂什么是代理模式
代理模式定义:为其他对象提供一种代理以控制对这个对象的访问上图中,Subject是一个抽象类或者接口,RealSubject是实现方法类,具体的业务执行,Proxy则是RealSubject的代理,直接和client接触的。代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的附加与增强。值得注意的是,代理类和被代理类应该共同实现一个接口,或者是共同继承某个类。代理模式优...原创 2019-07-08 10:42:04 · 227 阅读 · 0 评论 -
Java多线程学习(三)——synchronized(下)
synchronized同步语句块用关键字synchronized声明方法是有弊端的。比如线程A调用同步方法执行一个长时间任务,那么线程B就要等较长时间才能调用。下面看一个例子:public class Task { private String getData1; private String getData2; public synchronized voi...原创 2019-06-27 08:26:09 · 142 阅读 · 0 评论 -
Java虚拟机笔记(二)
欢迎扫码关注我原创 2019-03-26 17:41:12 · 114 阅读 · 0 评论 -
Java多线程学习(二)——Thread一些方法
本文章首发微信公众号:IT笔记分享欢迎扫码关注我原创 2019-03-17 17:45:30 · 185 阅读 · 0 评论 -
Java多线程学习(一)
本文章首发微信公众号:IT笔记分享欢迎扫码关注我原创 2019-03-06 11:04:00 · 106 阅读 · 0 评论 -
Java虚拟机笔记(一)
JDK和JRE区别 1、一般把Java程序设计语言,java虚拟机,java API类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。 2、Java API类库中Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境。Jav...原创 2019-02-26 17:54:30 · 138 阅读 · 0 评论 -
一篇搞懂Java线程池
欢迎关注微信公众号:xiaosen_javashare在上一篇文章《spring boot使用@Async异步任务》中我们了解了使用@Async的异步任务使用,在这篇文章中我们将学习使用线程池来创建异步任务的线程。在《阿里巴巴Java开发手册中》对线程使用有如下要求:接下来就让我们就好好了解一下线程池。线程池简单介绍在Java5中引入Executor框架。ThreadPoolEx...原创 2019-02-20 13:52:53 · 167 阅读 · 0 评论 -
设计模式(一)——单例模式
单例模式 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。构造器私有化,不能被new出来。项目代码:Github单例的应用优点在内存中只有一个实例, 减少了内存开支当一个对象的产生需要 比较多的资源时, 如读取配置、 产生其他依赖对象时, 则可以通过在应用启动时直接产生一 个单例对象, 然后用永久驻留内存的方式来解决单例模式可以避免对资源的多重占用, 例如一个写...原创 2019-02-18 10:23:59 · 137 阅读 · 0 评论 -
spring boot使用@Async异步任务
github项目地址:https://github.com/lgsdaredevil/asyncTest开启异步任务在应用主类中添加@EnableAsync注解写异步任务方法 @Async public Future<String> ansync(String name){ try { Thread.sleep(10000);...原创 2019-02-15 14:51:27 · 434 阅读 · 1 评论