自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

marry44750的博客

分享、学习、沉淀、提升

  • 博客(16)
  • 收藏
  • 关注

原创 clickhouse高可用集群部署

一、集群方案及表引擎选用  目的是搭建一套3分片1副本的高可用集群,因此使用ReplicatedMergeTree + Distributed方案。ReplicatedMergeTree用于复制表,副本间同步数据,Distributed做分布式表,用于数据写入和查询。二、逻辑部署图三、部署细节1、分片设置port端口为ck中配置的tcp_port,用于集群间通信<shard> <internal_replication>true</internal_repl

2021-04-20 12:00:33 971

转载 【网络编程】Netty实战入门详解

分享学习:Netty实战入门详解——让你彻底记住什么是Netty(看不懂你来找我)

2020-04-18 09:06:16 250

原创 【网络编程】NIO三大件及与BIO的区别

NIO三大件及与BIO的区别一、Buffer1、简单demo2、图解属性3、申请堆外内存二、Channel三、Selector四、BIO与NIO的区别一、BufferBuffer本质上就是一块内存区,可以用来写入数据,实现子类有ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer、LongBuffer 和 ShortBuffer。1...

2020-04-12 17:41:22 254

原创 【网络编程】网络协议

网络协议一、OSI七层模型二、TCP三、UDP四、TCP/UDP区别一、OSI七层模型二、TCP三次握手模拟打电话场景:A:hello,你能听到么?B:我能听到,你能听到我么?A:能听到开始会话…四次挥手A:我这边完事了B:好的,你稍等下,我这边还有点工作,做完我通知你B:我也完事了,可以下班了A:好的,我们下班吧会话结束…三、UDP四、TCP/UD...

2020-04-12 09:47:26 118

原创 【多线程】并发处理

并发处理一、业务场景二、fork/join框架1、 示意图2、简单demo二、CountDownLatch实现并发效果三、FutureTask1、简单demo2、源码分析3、自己实现一个FutureTask一、业务场景分布式系统中调用多个系统接口,汇总数据处理结果数据处理,结果统计二、fork/join框架1、 示意图递归、分而治之工作窃取2、简单demopublic c...

2020-04-11 23:56:16 555

原创 【容器类】画图理解HashMap、ConcurrentHashMap

画图理解HashMap、ConcurrentHashMap一、HashMap二、ConcurrentHashMap三、绘图工具一、HashMap二、ConcurrentHashMapJDK1.7JDK1.8三、绘图工具ProcessOn

2020-04-11 09:55:57 282

原创 【多线程】AQS共享锁应用之Semaphore/CountDownLatch/CyclicBarrier

共享锁实现一、信号量1、简单示例2、实现原理3、自己实现信号量及AQS共享锁二、CountDownLatch1、示例一、信号量控制多个线程拥有许可数,用于处理并发限流。acquire请求许可,release释放许可1、简单示例public class SemaphoreTest { private int[] info = new int[6];// 下标为桌号,置为使用状态 pub...

2020-04-10 00:01:19 209

原创 【多线程】锁的实现机制及AQS抽象

锁的实现机制及AQS抽象一、自己先实现一个锁二、jdk中的锁实现三、AQS封装及使用一、自己先实现一个锁思路:使用CAS原子操作实现线程安全+使用阻塞队列实现排队等待上代码:public class MyLock implements Lock { volatile AtomicReference<Thread> flag = new AtomicReference<T...

2020-04-09 21:13:33 139

原创 【多线程】线程锁概念及两种实现

线程锁相关知识整理一、相关概念一、相关概念自旋锁对某数据的修改如果失败,不会放弃当前CPU执行权,而是循环使用CAS进行尝试修改直到成功。悲观锁假设会发生并发操作,因此对数据的相关操作从读开始就上锁乐观锁假设不会有并发操作,在修改数据时如果发现数据不一致了,则读取最新数据再尝试进行修改...

2020-04-08 20:54:24 404 1

原创 【多线程】线程安全之可见性分析

线程安全之可见性分析一、JVM内存模型二、可见性问题引入1、CUP缓存2、指令重排优化一、JVM内存模型jvm内存模型是对java程序访问内存进行读写过程的抽象。分为线程共享和线程私有两大块:线程共享:所有线程都能访问的内存数据,随虚拟机或GC创建或销毁线程私有:每个线程都会单独开辟空间,随线程创建和销毁二、可见性问题引入首先我们看一段代码:public class ThreadV...

2020-04-07 15:52:50 150

原创 【多线程】线程安全之原子性CAS实现

线程安全之原子性CAS一、概念二、CAS机制一、概念原子性操作是针对访问共享变量的操作而言的,且是从该操作的执行线程以外的线程来描述的,即多线程环境下。原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分(不可中断性),即强调其不可分割性。这种“不可分割”是指访问(读、写)某个共享变量的操作从其执行线程以外的任何线程来看,该操作要么已经...

2020-04-07 15:45:20 241

原创 【多线程】线程池相关知识

类型名称说明接口Executor顶层接口,定义了执行任务的execute方法接口ExecutorService继承Executor接口,扩展了shutdown、submit等方法接口ScheduledExecutorService继承了ExecutorService接口,增加了定时任务相关方法实现类ThreadPoolExecutor标准的线...

2020-04-01 22:36:09 173

原创 【多线程】ThreadLocal为线程创建副本储存独享变量

ThreadLocal为线程创建副本储存独享变量一、线程封闭二、使用ThreadLocal创建线程副本变量一、线程封闭并发编程经常需要共享数据,因此需要涉及到线程间数据同步问题,但有时会有不需要线程间共享的数据,因此就有了线程封闭这个概念。线程封闭即线程所使数据只在线程内部使用,不需要给其他线程使用,不用考虑线程安全问题。二、使用ThreadLocal创建线程副本变量先上代码看下使用Thr...

2020-03-31 22:20:21 575 1

原创 【多线程】线程间通信三种方式代码实现

线程间通信方式一、jdk弃用suspend/resume方式1、正常情况2、同步块中请求同一把锁造成死锁3、执行顺序造成死锁二、wait/notify通信一、jdk弃用suspend/resume方式当前线程调用suspend方法会被挂起,当再次调用resume时恢复执行。但suspend操作不会释放锁,容易造成死锁,且suspend必须在resume方法之前执行,编写程序易出死锁BUG,因此...

2020-03-31 21:27:23 238

原创 【多线程】线程正确结束的两种方式

线程正确结束的两种方式一、jdk弃用stop方法二、interrupt方法三、设置标志位一、jdk弃用stop方法public class Task implements Runnable { private int i = 0; private int j = 0; @Override public void run() { synchronized (this) {//实现一...

2020-03-30 22:09:06 569

原创 【源码学习】ArrayList源码初探(JDK8)

概括动态数组、线程不安全,允许为空一、类结构public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.SerializableArrayList实现了List、RandomAccess、Cl...

2019-06-04 21:48:00 161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除