- 博客(40)
- 收藏
- 关注
原创 CountDownLatch---我的理解
这里写目录标题一、介绍二、使用三、源码分析:sync类:只提供了一个带参的构造方法,通过这个方法定义出count的值。await方法,功能就是等待其他线程运行完毕。代码很简单,就是使用sync的acquireSharedInterruptibly方法countDown()方法一、介绍countdownlatch是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了。用法:二、使
2021-03-12 12:40:37
590
2
原创 回溯法
回溯法一、子串public static void main(String[] args) { int[] nums = {1, 2, 3}; List<List<Integer>> lists = permute(nums); System.out.println(lists); } public st...
2020-01-11 22:52:47
181
原创 redis内存管理
redis内存管理内存分配内存压缩过期数据处理策略数据恢复阶段过期数据处理策略Redis内存回收策略LRU算法LFU算法内存分配内存压缩过期数据处理策略数据恢复阶段过期数据处理策略Redis内存回收策略LRU算法LFU算法...
2019-11-11 23:28:47
325
原创 redis持久化机制
redis持久化机制持久化介绍持久化方式RDB方式RDB优缺点AOF方式AOF优缺点持久化介绍持久化方式RDB方式RDB优缺点AOF方式AOF优缺点
2019-11-11 23:17:29
131
原创 mycat读写分离
mycat读写分离核心概念schema配置—schemaschema配置—tableschema配置—childTable标签schema配置—dataHostschema配置—heartbeatschema配置—writeHost readHostMycat读写分离核心概念schema配置—schemaschema配置—tableschema配置—childTable标签...
2019-10-20 10:25:55
128
原创 mycat入门
mycat入门Mycat是什么Mycat应用场景Mycat工作原理Mycat架构Mycat关键特性Mycat长期规划2.0Mycat是什么Mycat应用场景Mycat工作原理Mycat架构Mycat关键特性Mycat长期规划2.0...
2019-10-20 09:57:00
149
原创 RabbitMQ入门及内部消息分发机制
RabbitMQ入门及内部消息分发机制RabbitMQRabbitMQ角色RabbitMQ核心概念exchange类型默认fanoutdirecttopicheadersRabbitMQ运转流程RabbitMQRabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。RabbitMQ角色...
2019-10-06 16:43:00
344
原创 RocketMQ高性能最佳实践
RocketMQ高性能最佳实践最佳实践之Producer最佳实践之Consumer最佳实践之NameServerJVM与Linux内核配置最佳实践之Producer最佳实践之Consumer最佳实践之NameServer优先级JVM与Linux内核配置...
2019-09-15 20:41:59
287
原创 RocketMQ批量消息和事务消息
RocketMQ批量消息和事务消息批量消息为什么使用批量消息使用批量消息的限制事务消息什么是事务消息事务消息设计事务消息使用约束事务消息的状态批量消息为什么使用批量消息使用批量消息的限制事务消息什么是事务消息事务消息设计事务消息使用约束事务消息的状态超时很久,也会主动回查,类似Unknown状态。...
2019-09-15 17:25:36
561
原创 RocketMQ订阅机制和定时消息
RocketMQ订阅机制和定时消息发布订阅的基本概念RocketMQ的消息订阅RocketMQ订阅模式实现原理使用订阅模式定时消息的基本概念Broker定时消息发送逻辑发布订阅的基本概念RocketMQ的消息订阅RocketMQ订阅模式实现原理使用订阅模式从消费者端,进行配置定时消息的基本概念从producer端配置,延迟级别Broker定时消息发送逻辑...
2019-09-15 17:01:41
1329
原创 RocketMQ有序消息
RocketMQ有序消息有序消息的基本概念有序消息定义全局顺序分区顺序全局顺序与分区顺序对比如何保证消息顺序RocketMQ有序消息原理有序消息缺陷RocketMQ有序消息的使用有序消息的基本概念有序消息定义全局顺序分区顺序全局顺序与分区顺序对比如何保证消息顺序RocketMQ有序消息原理有序消息缺陷RocketMQ有序消息的使用...
2019-09-15 16:46:23
471
1
原创 RocketMQ架构方案及角色详解
RocketMQ架构方案及角色详解RocketMQ角色介绍RocketMQ架构方案RocketMQ集群部署配置RocketMQ角色介绍RocketMQ架构方案一个queue只有一个消费者nameserver之间没有数据同步broker之间,也没有数据同步,broker启动的时候,会把信息发送给所有的nameserverRocketMQ集群部署配置...
2019-09-15 16:13:08
345
原创 RocketMQ入门
RocketMQ入门RocketMQ基本概念RocketMQ安装运行RocketMQ使用RocketMQ基本概念RocketMQ安装运行nameserver默认4Gbroker默认8G如果内存不够,需要修改,否则启动失败RocketMQ使用...
2019-09-15 15:12:35
122
原创 RabbitMQ消息可靠性和插件机制
RabbitMQ消息可靠性和插件机制RabbitMQ消息可靠性RabbitMQ插件机制RabbitMQ消息可靠性RabbitMQ插件机制
2019-09-15 14:58:50
516
原创 RabbitMQ持久化机制、内存、磁盘控制
RabbitMQ持久化机制、内存、磁盘控制RabbitMQ持久化机制RabbitMQ内存控制磁盘控制RabbitMQ持久化机制内存不够用会存储到磁盘,重启后,数据消失RabbitMQ内存控制磁盘控制...
2019-09-15 13:37:36
1500
1
原创 RabbitMQ入门及消息分发机制
RabbitMQ入门及消息分发机制RabbitMQ是什么RabbitMQ安装运行RabbitMQ管理界面AMQP协议RabbitMQ核心概念RabbitMQ是什么RabbitMQ安装运行RabbitMQ管理界面AMQP协议RabbitMQ是基于AMQP协议实现的。RabbitMQ核心概念...
2019-09-15 00:34:47
179
原创 ActiveMQ高可用集群方案
ActiveMQ高可用集群方案ActiveMQ高可用集群方案介绍Master-Slave部署方式Broker-Cluster部署方式Master-Slave与Broker-Cluster相结合的部署方式网络连接器配置说明ActiveMQ高可用集群方案介绍Master-Slave部署方式Broker-Cluster部署方式Master-Slave与Broker-Cluster相...
2019-09-13 23:39:09
425
原创 ActiveMQ支持的消息协议
ActiveMQ支持的消息协议ActiveMQ支持哪些协议ActiveMQ的协议连接配置传输方式配置ActiveMQ常用的传输方式及配置TCPSSLNIOUDPHTTP(S)VMOpenWire协议OpenWire协议是什么OpenWire协议如何使用MQTT协议为什么使用MQTT协议MQTT的发布订阅模型MQTT服务质量AUTO协议ActiveMQ支持哪些协议ActiveMQ支持多种协议传...
2019-09-13 23:05:26
410
原创 分布式消息中间件设计篇
分布式消息中间件设计篇什么是分布式消息中间件消息中间件概述什么是消息中间件消息中间件的应用场景常用的消息中间件消息中间件核心设计本质5大核心组成协议协议是什么协议三要素常见协议AMQP协议MQTT协议Open MessageKafka协议持久化持久化是什么常用持久化方式消息分发为什么要有消息分发策略常用的消息中间件发布策略高可用高可用机制Master-Slave主从共享数据的部署方式Master-...
2019-09-13 21:34:47
930
原创 如何进行高性能编程?
如何进行高性能编程,可以从以下三个方面入手:1、java系统性能2、java并发编程3、网络并发编程java系统性能,就是java调优,例如垃圾回收器的选择,jvm堆大小的设置,tomcat连接数设置,tomcat线程设置等等。当然这些设置是没有规律可循的,想要一个最优解,一个参数一个参数的调试。当然,也并不是说,有了这些参数,就一定能保证java系统层面性能就高了。主要是看代码,参数只...
2019-09-08 23:19:20
286
原创 Activemq入门
Activemq入门ActiveMQ是什么JMS是什么JMS的对象模型JMS的消息模型JMS的消息结构ActiveMQ特性安装ActiveMQ服务ActiveMQ是什么ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J...
2019-09-01 15:38:49
226
原创 垃圾回收机制
垃圾回收机制自动垃圾收集如何确定内存需要被回收可达性分析算法引用类型和可达性级别引用类型:可达性级别垃圾收集算法分代算法垃圾收集器串行收集器 - Serial GC -XX:+UseSerialGC并行收集器 -Parallel GC -XX:+UseParallelGC并发收集器 - CMS(Concurrent Mark Sweep) GC -XX:+UseConcMarkSweepGC并...
2019-08-26 18:29:40
176
原创 类加载机制
类加载机制运行时数据区类生命周期类加载器验证问题查看类对应的加载器JVM如何知道我们的类在何方类不会重复加载类的卸载双亲委派模型运行时数据区类生命周期类加载器类加载器负责装入类,搜索网络、jar、zip、文件夹、二进制数据、内存等指定位置的类资源。一个java程序运行,最少有三个类加载器实例,负责不同类的加载。验证问题查看类对应的加载器public class TestC...
2019-08-26 11:12:58
82
原创 Synchronized从使用到原理
Synchronized从使用到原理JAVA中锁的概念同步关键字synchronized堆内存中的Java对象对象头Mark WordJAVA中锁的概念自旋锁:是指当一个线程再获取锁的时候,如果锁已经被其他线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,知道获取到锁才会退出循环。乐观锁:假定没有冲突,在修改数据时,如果发现数据和之前获取的不一致,则读最新数据,修改后重试修...
2019-08-23 19:28:18
113
原创 Atomic相关类和CAS机制
Atomic相关类和CAS机制原子操作CAS(Compare and swap)原子操作public class TestCollection { public static void main(String[] args) throws Exception { final TestCollection test = new TestCollection(); for (int i ...
2019-08-21 18:41:37
484
原创 交替打印字母和数字
public class TestCollection { public static void main(String[] args) { TestCollection test = new TestCollection(); test.t1(); test.t2(); } public static Object obj = new Object(); public ...
2019-08-21 11:03:42
285
原创 Java内存模型详解
Java内存模型详解JVM运行时数据区Java内存模型 VS JVM运行时数据区初看Java内存模型多线程中的问题JVM运行时数据区Java内存模型 VS JVM运行时数据区Java语言规范:描述java语言特性Java虚拟机规范:描述java虚拟机模型Java内存模型是由,java语言规范提出JVM运行时数据区(堆,方法区。。。)来自ava虚拟机规范初看Java内存模型一次执...
2019-08-21 10:45:29
134
原创 线程池原理
线程池原理为什么要用线程池线程池原理—概念线程池API——接口定义和实现类方法定义线程池API——Executors工具类线程池原理——任务execute过程同步队列(SynchronousQueue):线程池中止shutdownshutdownNow线程数量为什么要用线程池线程是不是越多越好?1、线程在java中是一个对象,更是操作系统的资源,线程创建、销毁需要时间。如果创建时间+销毁时间...
2019-08-11 10:26:56
192
原创 线程通信
线程通信通信方式文件共享网络共享变量共享线程协作——JDK APIAPI——被弃用的suspend和resumewait和notify机制park/unpark机制伪唤醒线程通信,指多个线程在运行期间,进行的数据交互或者协作。通信方式要想实现多个线程之间的协同,如:线程执行先后顺序、获取某个线程执行的结果等等。涉及到线程之间相互通信,分为下面四类:文件共享网络共享变量共享jdk提...
2019-08-11 09:28:00
114
原创 Netty零拷贝机制
Netty零拷贝机制Netty自己的ByteBufJDK ByteBuffer的缺点:ByteBuf做了那些增强ByteBuf操作Netty自己的ByteBufByteBuf是为解决ByteBuffer的问题和满足网络应用程序开发人员的日常需求儿设计的。JDK ByteBuffer的缺点:1、无法动态扩容 长度是固定的,不能动态扩...
2019-08-08 23:54:09
413
原创 Netty线程模型
Netty线程模型简介Netty整体结构图Netty线程模型EventLoopGroup初始化过程EventLoop的启动bind绑定端口过程Channel概念简介Netty是一个高性能、高可拓展性的异步时间驱动的网络应用程序框架,它极大的简化了TCP和UDP客户端和服务器开发等网络编程Netty重要的四个内容:Reactor线程模型:一种高性能的多线程程序设计思路Netty中自己定义...
2019-08-08 11:51:23
250
原创 线程封闭
线程封闭概念ThreadLocal栈封闭概念多线程访问共享可变数据时,涉及到线程间数据同步的问题。并不是所有时候,都要用到共享数据,所以线程封闭概念就提出来了。数据都被封闭在各自的线程之中,就不需要同步,这种通过将数据封闭在线程中而避免使用同步的技术称为线程封闭。线程封闭具体的体现有:ThreadLocal、局部变量ThreadLocalThreadLocal是Java里一种特殊的变量...
2019-08-07 19:22:40
117
原创 CPU缓存和内存屏障
CPU缓存和内存屏障CPU性能优化手段——缓存多级缓存缓存同步协议CPU性能优化手段——运行时指令重排两个问题内存屏障CPU性能优化手段——缓存为了提高程序运行的性能,现代CPU在很多方面堆程序进行了优化。例如:CPU高速缓存。尽可能的避免处理器访问主内存的时间开销,处理器大多会利用缓存(cache)以提高性能。多级缓存L1 Cache(一级缓存)时CPU第一层高速缓存,分为数据缓存和...
2019-08-06 10:57:32
113
原创 线程状态、线程中止、
线程状态线程状态线程切换线程终止不正确的线程终止——Stop正确的线程中止interrupt标志位线程状态6个状态定义:java.lang.Thread.State1、New:尚未启动的线程的线程状态。2、Runnable:可运行线程的线程状态,等待CPU调度。3、Blocked:线程阻塞等待监视器锁定的线程状态。 处于sync...
2019-08-06 10:26:42
157
原创 NIO网络编程
NIO网络编程Buffer缓冲区Buffer工作原理ByteBuffer内存类型Channel通道SocketChannelServerSocketChannelSelector选择器NIO和BIO对比NIO与多线程结合的改进方案三大核心组件:buffer缓冲区,channel通道,selector选择器Buffer缓冲区缓冲区本质上是一个可以写入数据的内存块(类似数组),然后可以再次读取。...
2019-08-06 00:29:06
244
原创 BIO网络编程
BIO网络编程服务端客户端处理多连接HTTP协议请求数据包解析响应数据包解析响应状态码协议开发---http协议阻塞IO的含义服务端ServerSocket serverSocket = new ServerSocket(8080);//只是监听8080端口Socket request = serverSocket.accept(); //获取socket对象,是阻塞方法(如果没有新的连接过...
2019-08-04 17:01:26
367
原创 TCP/UDP协议
OSI网络七层协议传输层控制协议TCP传输控制协议(TCP)是Internet一个重要的传输层协议。TCP提供面向连接、可靠、有序、字节流传输服务。应用程序在使用TCP之前,必须先建立TCP连接。TCP握手机制三次握手目的:检测网络连接是否通畅。四次挥手目的:断开连接,保证数据传输完毕。用户数据报协议UDP用户数据报协议UDP是Internet传输层协议。提供无连接、不可...
2019-08-04 16:19:46
115
原创 JAVA程序运行原理分析
JAVA程序运行原理分析JAVA运行时数据区线程共享部分方法区堆内存线程独享部分虚拟机栈本地方法栈程序计数器class文件内容版本号/访问标志常量池构造函数程序入口—main方法程序完整运行分析JAVA运行时数据区线程共享部分方法区用来存储加载的类信息、常量、静态变量、编译后的代码等数据。虚拟机规范中这是一个逻辑区域。具体实现根据不同虚拟机来实现。如:oracle的HotSpot在j...
2019-08-04 09:49:52
207
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人