自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-04-24

freeswitch是做什么的主要工作是一个以freeswitch为基础,在通过sip电话软件的连接(如: linphone、X-lite),实现视音频的实时通讯。特点:是跨平台、可伸缩、开源的

2021-04-24 20:16:46 71

原创 并发-两种线程池

ThreadPoolExcutor 和 ForkJoinPool一. 两者的区别: ThreadPoolExcutor 是多个线程共享一个队列。 ForkJoinPool 是分解处理,在汇总结果。每个线程对应一个队列,任务少的线程会去任务重的队列获取任务执行。 二. 线程池的7个参数: 1.coolPoolSize: 核心线程数 2.maxPoolSize: 最大线程池数 3.keepAliveTime: 非核心线程不

2020-11-03 00:00:55 141

原创 并发-ThreadLocal、强、软、弱、虚

ThreadLocalThreadLocal 从名字上看,叫线程变量。可以理解为每个线程独有的变量。 1. 看源码我们就会知道,ThreadLocal核心是ThreadLocalMap 容器。 2. 这个容器在set值时是以当前的ThreadLocal为key的,线程之间 的信息都是独享的,保证了线程安全问题。 3. 最重要的一点是Map的这个key被传递给了弱引用。 4. 这里说下弱引用:只要是触发了GC弱引用就会被回收 5. 由于3、4两条,当ThreadLocal 引用 == nul

2020-10-27 23:59:39 149

原创 并发-AQS

今天聊下我理解的AQS主要从是什么、数据结构、原理三个点说一下一. 是什么 AQS是JUC.Locks包下的一个抽象类 AbstractQueueSynchronizer 使用的设计模式是TemplateMethod 模板方法又叫钩子函数 (AQS设计方法,具体的实现由子类来实现)二. 数据结构 AQS 是 volitile int state + Queue (是个双向链表) 1. state 的具体含义由它的子类来决定 例如:

2020-10-26 23:54:27 146

原创 JVM-类加载(总结一)

了解类加载一. 首先要知道四种类加载器 1. bootstrap : 加载lib/rt.jar charset.jar 等核心类 ,c++实现 2. Extension: 加载扩展jar包 jre/lib/ext*.jar或者Djava.ext.dirs指定 3. App: 加载的是classpath指定的内容 4. custom ClassLoader: 自定义类加载二. 四种加载器的关系 1. custom ClassLoader 的父亲加载器 App 2. App 的父加载器

2020-10-25 17:47:25 122

原创 并发-JUC基础知识总结(一)

JUC的几个类AtomicInteger确保原子性的原理底层 使用unsafe 类实现unsafe 直接操作的是地址值,cup的原语支持,确保了原子性。unsafe运用的是CAS思想compareAndSet(Object var1 , long valueOffset 地址值,int b 更新值){ int var5; do{ //通过地址值获取最新的值 var5 = this.getIntVolatile(var1, valueOffset ) }while(!thi

2020-10-24 23:06:25 2028

空空如也

空空如也

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

TA关注的人

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