Java
活在梦里丶
学渣的逆袭之路~
展开
-
ConcurrentHashMap1.7和1.8设计思想
1.7中的ConcurrentHashMap的介绍 HashMap是一个线程不安全的集合,如果想要在并发下让他线程安全那么可以使用Hashtable,但是Hashtable是对整个集合进行加锁,这明显也不是我们想要的。按照历史经验来讲,要提升性能比较好想到的手段就是减小锁的粒度。 在ConcurrentHashMap1.7中使用了一组Segment集合作为作为锁,它的底层继承自ReentrantLock,Segment里面包含了一个HashEntry数组,HashEntry是一个链表结构的元素.原创 2020-09-12 09:30:17 · 238 阅读 · 0 评论 -
Java中的线程池设计思想
为什么要使用线程池 首先线程的创建和销毁需要调用操作系统内核的API,然后操作系统为其分配一系列资源,整个成本很高,也就导致线程是一个重量级对象。其次如果并发线程数量很多,并且每个线程执行一个很短的任务就结束了,这样频繁创建线程不仅会消耗系统资源,还会降低系统的稳定性。 为了避免资源的过度消耗,最好的办法就是用池化技术对线程进行复用,线程执行完一个任务并不需要销毁,而是让他继续执行其他任务。这样当任务到达时,任务可以不需要等到线程创建就能立即执行。 使用线程池对资源进行统一的分配、调度和监控,不仅可以原创 2020-09-09 02:26:33 · 337 阅读 · 0 评论 -
Java类加载器与双亲委派模型
类加载器的作用 类加载器的作用就是把类的字节码加载到jvm。同时jvm规定,程序员可以用java代码来自定义类加载器,把类的字节码信息加载到jvm中。jvm再使用类加载器的时候,并不是一次性把所有的类都加载进来,而是在用到某个类的时候,发现jvm中没有才去加载它。 类加载器的类型 从java虚拟机角度来看,类加载器分成C++语言实现的启动类加载器属于虚拟机的而一部分,和java语言实现所有其他类的...原创 2020-03-09 22:25:34 · 189 阅读 · 1 评论