- 博客(79)
- 收藏
- 关注
原创 多线程进阶学习11------CountDownLatch、CyclicBarrier、Semaphore详解
CountDownLatch、CyclicBarrier、Semaphore详解
2023-04-03 19:36:22
508
原创 多线程进阶学习10------AQS详解
AbstractQueuedSynchronizer,来自于JDK1.5,位于JUC包,由并发编程大师Doug Lea编写,字面翻译就是“抽象队列同步器”,简称为AQS。AQS作为一个抽象类,是构建JUC包中的锁(比如ReentrantLock)或者其他同步组件(比如CountDownLatch)的底层基础框架。
2023-03-30 16:58:08
617
原创 多线程进阶学习09------ThreadLocal详解
ThreadLocal:提供线程的局部变量,对于线程共享变量如果使用ThreadLocal则无需加锁,更省事省心。
2023-03-27 21:32:21
734
原创 多线程进阶学习06------ReentrantLock、ReentrantReadWriteLock、StampedLock详解
无锁->独占锁->读写锁->邮戳锁
2023-03-22 20:54:20
541
原创 多线程进阶学习05------Volatile详解
本篇介绍了JMM、三大特性、指令重排序、happens-before、内存屏障、volatile、单例模式
2023-03-21 16:42:03
471
原创 多线程进阶学习03------锁概念详解
要保障共享变量的线程安全,最熟知的解决办法就是加锁,但是锁在使用上很简单就是加一个关键字Synchronized,但是这个锁性能太差了。为了降低加锁带来的性能损耗,锁被分为了各种各样的分类,根据业务场景不同选用合适的锁,增加系统吞吐量。
2023-03-21 14:29:54
409
原创 多线程进阶学习02------Future异步任务
原有的FutureTask类,get()方法会导致阻塞,isDone()轮询也占用cpu,并且能用的api较少,对于以上缺点,jdk8推出了CompletableFuture。
2023-03-20 14:17:06
448
原创 多线程进阶学习01------基础回顾
实事求是地讲,对于绝大多数研发人员,平时用到多线程的场景并不多。但多线程在我们的日常开发中却无处不在,只不过很多时候,框架已经帮你实现了。比如 web 开发,容器已经帮你实现了多线程;再比如大数据开发,框架也已帮你实现了多线程,甚至分布式计算。那促使你学习多线程的原因是什么呢?我想很大可能你是为了面试打基础、做准备。没错,这真的很现实!
2023-03-20 13:36:08
445
原创 Ubuntu18.04.6 离线安装mysql5.7
在没有网络的时候如何安装mysql,参考本篇:Ubuntu18.04.6 离线安装mysql5.7
2023-02-01 22:23:56
329
原创 Ubuntu18.04.6 通过自编译的方式指定mysql5.7安装目录(有网络)
Ubuntu18.04.6 通过自编译的方式指定mysql5.7安装目录(有网络)
2023-02-01 22:11:01
301
原创 VM虚拟机三种网络配置详解(桥接、NAT、仅主机)
什么是ip,子网掩码,网段,网关?vm中桥接、NAT、仅主机网络配置有什么区别?本篇会带给你答案。
2022-11-29 21:51:10
2654
原创 CentOS7.9集群部署(配置hosts、集群免密、时间同步)
在上一篇我们介绍了如何在windows下安装虚拟机,在虚拟机上安装CentOS7.9,并且在系统安装完成后配置了固定ip和系统时间。但是在分布式、大数据体系下,为了提高程序的高可用,单机是远远不够的,这里就需要搭建多台机器组成集群,那么本篇就给大家打来CentOS7.9集群部署,包括配置hosts、免密登录、时间同步。
2022-11-28 22:07:16
2064
原创 windows安装VMware虚拟机(附带CentOS7部署)
windows安装VMware虚拟机,附带CentOS7.9安装部署,CentOS设置固定ip,设置系统时间,全程图文保姆级教学,内附下载链接。
2022-11-26 12:32:49
1527
原创 Canal1.1.6安装部署
阿里巴巴 B2B 公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了同步杭州和美国异地机房的需求,从 2010 年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务。Canal 是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前。Canal 主要支持了 MySQL 的 Binlog 解析,解析完成后才利用 Canal Client 来处理获得的相关数据。(数据库同步需要阿里的 Otter 中间件,
2022-11-21 17:10:29
2020
转载 quartz定时任务(04)—— Scheduler源码解析
有了需要运行的任务Job,和确定运行时间的Trigger之后,目前可以说这两部分是分开的,互补关联,这时候需要有一只手来操控这一切,那就是Scheduler。
2022-10-21 11:37:42
852
转载 quartz定时任务(03)——Trigger源码解析
Job源码看过之后,今天要分析的源码在架构上是与Job隔离的,那就是Trigger。Trigger英文翻译是触发器的意思,这也很符合它的实际作用。
2022-10-21 11:26:15
523
转载 quartz定时任务(01)—— 入门
quartz是一个由java编写的任务调度库。简单来说,其实就是我们在业务中需要使用的定时任务器。相信很多人可能没有看到过Quartz这个框架,但很多人使用过定时任务业务的人却间接的使用到了。比如,当当网的Elastic-job,又比如Spring中自带的定时任务框架,其实都是对Quartz的一次封装。
2022-10-21 11:17:41
955
原创 Elasticsearch面试题(查漏补缺)
为什么要使用 Elasticsearch? Elasticsearch 的 master 选举流程?Elasticsearch 集群脑裂问题?Elasticsearch 索引文档的流程?Elasticsearch 更新和删除文档的流程? Elasticsearch 搜索的流程?Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?GC 方面,在使用 Elasticsearch 时要注意什么?Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?...
2022-08-02 15:45:46
195
原创 Elasticsearch-Java操作篇
通常情况下,都是使用编程语言来操作es,本篇带来如何用elasticsearch-rest-high-level-client操作es。
2022-07-17 15:28:47
2674
1
原创 Elasticsearch插件管理(ik分词器、附件文本抽取插件)
Elasticsearch 使用一种称为倒排索引的结构,它适用于快速的全文搜索。见其名,知其意,有倒排索引,肯定会对应有正向索引。正向索引(forward index),反向索引(inverted index)更熟悉的名字是倒排索引。所谓的正向索引,就是搜索引擎会将待搜索的文件都对应一个文件 ID,搜索时将这个ID 和搜索关键字进行对应,形成 K-V 对,然后对关键字进行统计计数。但是互联网上收录在搜索引擎中的文档的数目是个天文数字,这样的索引结构根本无法满足实时返回排名结果的要求。所以,搜索引擎会将正向索
2022-07-11 20:10:24
1327
原创 Elasticsearch7.17.5 Linux安装部署
Elasticsearch7.xx版本,基于centos7.9安装部署,包含单机以及集群模式。
2022-07-11 17:43:32
1577
原创 Flink之多流转换(分流、合流)
无论是基本的简单转换和聚合,还是基于窗口的计算,我们都是针对一条流上的数据进行处理的。而在实际应用中,可能需要将不同来源的数据连接合并在一起处理,也有可能需要将一条流拆分开,所以经常会有对多条流进行处理的场景。本章我们就来讨论 Flink 中对多条流进行转换的操作。简单划分的话,多流转换可以分为“分流”和“合流”两大类。目前分流的操作一般是通过侧输出流(side output)来实现,而合流的算子比较丰富,根据不同的需求可以调用 union、connect、join 以及 coGroup 等接口进行连接
2022-05-08 11:23:16
2952
原创 设计模式之命令模式
在软件开发系统中,“方法的请求者”与“方法的实现者”之间经常存在紧密的耦合关系,这不利于软件功能的扩展与维护。例如,想对方法进行“撤销、重做、记录”等处理都很不方便,因此“如何将方法的请求者与实现者解耦?”变得很重要,命令模式就能很好地解决这个问题。
2022-04-28 09:59:53
160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人