![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java多线程
文章平均质量分 96
春风十米
不积跬步无以至千里,不积小流无以成江海。加油!!!
展开
-
Java线程(篇外篇):阻塞队列BlockingQueue
好久没有写文章了,这段时间事情比较杂,工作也比较杂乱,上周日刚搬完家,从自建房搬到了楼房,提升了一层生活品质,哈哈!不过昨天晚上在公交车上钱包被偷了,前段时间还丢个自行车,不得不感叹,京城扒手真多,还无人处理。言归正传,这一段时间我的工作主要是改进公司的调度器,调度器调度线程池执行任务,生产者生产任务,消费者消费任务,那么这时就需要一个任务队列,生产者向队列里插入任务,消费者从队列里提取任务执行,转载 2017-08-30 09:46:27 · 171 阅读 · 0 评论 -
为什么ConcurrentHashMap是弱一致的
本文将用到Java内存模型的happens-before偏序关系(下文将简称为hb)以及ConcurrentHashMap的底层模型相关的知识。happens-before相关内容参见:JLS §17.4.5. Happens-before Order、深入理解Java内存模型以及Happens before;ConcurrentHashMap的详细介绍以及底层原理见深入分析Concurr转载 2017-08-30 10:49:22 · 250 阅读 · 0 评论 -
深入分析ConcurrentHashMap
本文是作者原创,发表于InfoQ:http://www.infoq.com/cn/articles/ConcurrentHashMap 术语定义 术语 英文 解释 哈希算法 hash algorithm 是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。 哈希表 hash table 根据设转载 2017-08-30 15:14:42 · 171 阅读 · 0 评论 -
多线程死锁的产生以及如何避免死锁
转自:http://blog.csdn.net/ls5718/article/details/51896159 一、死锁的定义 多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。 下面我们通过一些实例来说明死锁现象。 先看生活转载 2017-08-31 11:22:38 · 301 阅读 · 0 评论 -
银行家算法
银行家算法是资源和死锁避免的算法,由艾兹格·迪杰斯特拉(Edsger Dijkstra) 设计的算法用于测已确定总数量的资源分配的安全性,在决定是否该分配应该被允许并进行下去之前,通过“s-state”校验码测试资源分配活动期间产生死锁条件的可能性。 该算法是为为THE操作系统设计并且最在在EWD108描述。当一个新的进程进入系统时,进程必须声明所需每个资源实例最大的数量和类型。显然,转载 2017-08-31 14:43:02 · 530 阅读 · 0 评论 -
Java8系列之重新认识HashMap
转自:http://www.importnew.com/20386.html 简介 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示: 下面针对各个实现类的特点做一些说明: (1) HashMap:它根据键的ha转载 2017-08-31 15:49:23 · 202 阅读 · 0 评论 -
HashTable和HashMap的区别详解
转自:http://blog.csdn.net/fujiakai/article/details/51585767 4、key和value是否允许null值 其中key和value都是对象,并且不能包含重复key,但可以包含重复的value。 通过上面的ContainsKey方法和ContainsValue的源码我们可以很明显的看出:转载 2017-08-31 16:20:30 · 514 阅读 · 0 评论