Francis
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
sentinel适配开源框架

sentinel适配开源框架

官网:https://sentinelguard.io/zh-cn/docs/open-source-framework-integrations.html 1 开源生态https://github.com/alibaba/Sentinel/wiki/Roadmap 2 适配RestTemplatehttps://github.com/alibaba/spring-cloud-alibaba/w
2023-03-18
spring框架 > springcloud > sentinel
#java #springcloud #sentinel
线程池

线程池

1 实现原理当向线程池提交一个任务之后,线程池的处理流程如下: 判断是否达到核心线程数,若未达到,则直接创建新的线程处理当前传入的任务,否则进入下个流程 线程池中的工作队列是否已满,若未满,则将任务丢入工作队列中先存着等待处理,否则进入下个流程 是否达到最大线程数,若未达到,则创建新的线程处理当前传入的任务,否则交给线程池中的饱和策略进行处理。 2 java中的线程池jdk中提供了线程
2023-03-12
java基础 > 多线程
#多线程 #线程池
Zookeeper初识

Zookeeper初识

官网:https://zookeeper.apache.org/ 1 Zookeeper环境安装1.1 服务端安装启动1.1.1 centos 前置环境 Java8 Maven 下载Zookeeper:3.7.1 https://zookeeper.apache.org/releases.html 1wget https://www.apache.org/dyn/closer.lua/
2023-03-12
中间件 > Zookeeper
#Zookeeper
死锁和ThreadLocal

死锁和ThreadLocal

1 死锁/活锁死锁: 一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象。 活锁: 活锁指的是任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试—失败—尝试—失败的过程。处于活锁的实体是在不断的改变状态,活锁有可能自行解开。 2 死锁发生的条件 互斥,共享资源 X 和 Y 只能被一个线程占用; 占有且等待,线程 T1 已经取得共享资源 X,在等待共享资源 Y 的时候,不释放共
2023-03-12
java基础 > 多线程
#多线程 #死锁 #ThreadLocal
volatile关键字

volatile关键字

1 一个问题1234567891011121314151617public static void main(String[] args) throws Exception { Thread thread = new Thread(() -> { int i = 0; while(!stop) { i++;
2023-03-12
java基础 > 多线程
#多线程 #volatile关键字
并发工具类以及AQS

并发工具类以及AQS

1 AQS谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer。 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,是同步类的最核心的一个类,如常用的ReentrantLock/Semaphore/CountDownLatch…。 1.1 整体框架 它维护
2023-03-12
java基础 > 多线程
#多线程 #并发工具类 #AQS
锁-synchronized

锁-synchronized

互斥锁的本质是共享资源。 1 锁的使用可以修饰在方法层面和代码块层面 synchronized有三种方式来加锁,不同的修饰类型,代表锁的控制粒度: 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁 静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。 锁是在对象头中存储。 2
2023-03-12
java基础 > 多线程
#多线程 #synchronized
ConcurrentHashMap

ConcurrentHashMap

1 JDK8版本的改进在jdk1.7版本中,ConcurrentHashMap由数组+Segment+分段锁实现,其内部分为一个个段(Segment)数组,Segment通过继承ReentrantLock来进行加锁,通过每次锁住一个Segment来降低锁的粒度而且保证了每个Segment内的操作的线程安全性,从而实现全局线程安全。 但是这么做的缺陷就是每次通过 hash 确认位置时需要 2 次才
2023-03-12
java基础 > 多线程
#多线程 #集合 #ConcurrentHashMap
垃圾回收(Garbage Collect-GC)

垃圾回收(Garbage Collect-GC)

1 对象的引用Java中的引用的定义:如果reference(引用)类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。 希望能描述这样一类对象:当内存空间还足够时,则能保留在内存之中;如果内存空间在进行垃圾收集后还是非常紧张,则可以抛弃这些对象。 很多系统的缓存功能都符合这样的应用场景。四种引用类型: 强引用:在Java中最常见的就是强引用,也是在开发过程中经常会
2023-03-11
java基础 > jvm
#jvm
nacos配置中心

nacos配置中心

Nacos版本:2.0.4 nacos2.x已不支持ribbon,使用nacos2.x需要手动引入LoadBalancer 1 基本使用使用外部数据源 12345spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://127.0.0.1:3306/mynacos?characterEncoding=utf8&connec
2023-03-11
spring框架 > springcloud > nacos
#springcloud #nacos #配置中心
1…101112131415

搜索

Hexo Fluid