自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 dubbo源码总结

源码导读:http://dubbo.apache.org/zh-cn/docs/source_code_guide/export-service.html 概念 Invoker:实体域。Invoker是Dubbo的核心模型,其它模型都向它靠扰或转换成它,它代表一个可执行体,可向它发起invoke调用。 它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。 提供者的invoker 1.本质上应该是一个代理,经过层层包装最终进行了发布。当消费者发起请求的时候,会获得这个invoker进行调用。

2020-06-06 16:37:04 201

原创 kafka总结

知识点 1个topic的不同分区中的数据是不一样的。 zookeeper的作用:1.kafka集群选举mater(基于顺序节点,broker.id最小的节点为master)。2.存储分区的副本集信息。 partition 1个partition只能被1个consumer连接(3个partition4个consumer时,有1个consumer会闲置)。 1个consumer可以连接多个partition(2个partition1个consumer时,这2个partition都由这个consumer消费)。

2020-06-06 16:32:39 171

原创 dubbo-SPI

SPI 1.ExtensionLoader.getExtensionLoader:创建指定类型的ExtensionLoader对象 1.new ExtensionLoader(type):创建指定类型的ExtensionLoader对象 ->AdaptiveExtensionFactory objectFactory = ExtensionLoader.getExtensionLoader(ExtensionFactory.class).getAdaptiveExtension():初始化这个exte

2020-05-24 22:18:46 99

原创 JMM的可见性和原子性

1.可见性:当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。 happens-before概念:happens-before仅仅要求前一个操作(执行的结果)对后一个操作可见,并不意味着前一个操作必须要在后一个操作之前执行。 程序顺序规则:一个线程中的每个操作,happens-before于该线程中的任意后续操作。 一个方法中相邻的2行代码不一定按从上到下的顺序执行:JMM允许编译器和处理器对指令重排序。 as-if-serial语义:不管怎么重排序(编译器和处理器为了提高并行

2020-05-10 10:02:20 261

原创 理解interrupt

1.thread.interrupt 中断可以理解为线程的一个标识位属性,它表示一个运行中的线程是否被其他线程进行了中断操作。 中断好比其他线程对该线程打了个招呼,其他线程通过调用该线程的interrupt()方法对其进行中断操作。 thread.interrupt会把isInterrupted设置成true,isInterrupted默认是false。 isInterrupted(中断状态)是线程的一个标识位,而中断操作是一种简便的线程间交互方式,而这种交互方式最适合用来取消或停止任务。 停止线程(thr

2020-05-10 09:49:23 408

原创 线程状态与阻塞

线程的状态 NEW:初始状态。线程被创建。 RUNNABLE:运行状态。java的运行状态(RUNNABLE)状态包括操作系统中的就绪(READY)和运行中(RUNNING)两种状态。 Thread.start会使线程进入Runnable状态。 yield会使线程从RUNNING状态进入READY状态。 BLOCKED:阻塞状态。表示线程等待获取监视器锁,线程阻塞于锁。 当线程调用同步方法时,在没有获取到锁的情况下,线程将会进入到阻塞状态。线程等待进入synchronized方法/代码块。 BLOCKED状

2020-05-10 09:40:37 291

原创 线程池总结

1.Executors Executors.newFixedThreadPool:可控制线程的最大并发数,超出的线程会在队列中等待。适用于执行1个长期的任务。底层是ThreadPoolExecutor。它使用了LinkedBlockingQueue。 Executors.newSingleThreadExecutor:只会用唯一的工作线程来执行任务,保证所有任务都按照指定顺序执行。底层是ThreadPoolExecutor。它使用了LinkedBlockingQueue。 Executors.newCach

2020-05-10 09:02:40 78

原创 NIO概念

概要:本文阐述我对NIO中的一些基本概念的理解:Selector、Channel、Buffer、同步与异步、阻塞与非阻塞、多路复用。其中selector与channel进行交互,channel与buffer进行交互。 Selector Selector是SelectableChannel 对象的多路复用器。Selector可以同时监控多个SelectableChannel的IO状况,也就是说,利用...

2020-02-29 07:52:19 146 2

空空如也

空空如也

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

TA关注的人

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