摘要:
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的效果。今天我们 阅读全文
摘要:
一、背景: 线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。 效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下 阅读全文
摘要:
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行 阅读全文
摘要:
链表跟数组的区别? 数组静态分配内存,链表动态分配内存;数组在内存中连续,链表不连续;数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n);数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。 根据以上分析可得出数组和链表的优缺点如下: 数组的优点 随机访问性强(通过 阅读全文
摘要:
<!-- flowchart 箭头图标 勿删 --> 说明 通过阅读源码,了解LinkedBlockingQueue的特性。本文基于JDK1.7源码 正文 通过查询API对LinkedBlockingQueue特点进行简单的了解: LinkedBlockingQueue是一个基于已链接节点的,范围任 阅读全文
摘要:
版权声明:本文为博主原创文章,未经博主允许不得转载。转载注明出处:Sunzxyong https://blog.csdn.net/u010687392/article/details/50549236 <!-- flowchart 箭头图标 勿删 --> 前言 对于ThreadLocal、Volat 阅读全文