2019年6月26日
摘要: 最近在看java线程池实现方面的源码,在此做个小结,因为网上关于线程池源码分析的博客挺多的,我也不打算重复造轮子啦,仅仅用纯语言描述的方式做做总结啦! 个人认为要想理解清楚java线程池实现原理,明白下面几个问题就可以了: (1):线程池存在哪些状态,这些状态之间是如何进行切换的呢? (2):线程池 阅读全文
posted @ 2019-06-26 11:00 smile2it 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 前言在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其他更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地 阅读全文
posted @ 2019-06-26 10:28 smile2it 阅读(142) 评论(0) 推荐(0) 编辑
  2019年6月25日
摘要: 首先需要理解线程安全的两个方面:执行控制和内存可见。 执行控制的目的是控制代码执行(顺序)及是否可以并发执行。 内存可见控制的是线程执行结果在内存中对其它线程的可见性。根据Java内存模型的实现,线程在具体执行时,会先拷贝主存数据到线程本地(CPU缓存),操作完成后再把结果从线程本地刷到主存。 sy 阅读全文
posted @ 2019-06-25 22:51 smile2it 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 学习时正好碰到这两个方法,就查阅相关资料,并通过程序实现,进行区别一下: 1、每个对象都有一个锁来控制同步访问,Synchronized关键字可以和对象的锁交互,来实现同步方法或同步块。sleep()方法正在执行的线程主动让出CPU(然后CPU就可以去执行其他任务),在sleep指定时间后CPU再回 阅读全文
posted @ 2019-06-25 22:47 smile2it 阅读(268) 评论(0) 推荐(0) 编辑
摘要: HashMap 和 HashSet 都是 collection 框架的一部分,它们让我们能够使用对象的集合。collection 框架有自己的接口和实现,主要分为 Set 接口,List 接口和 Queue 接口。它们有各自的特点,Set 的集合里不允许对象有重复的值,List 允许有重复,它对集合 阅读全文
posted @ 2019-06-25 22:40 smile2it 阅读(533) 评论(0) 推荐(0) 编辑
摘要: LRU 缓存介绍 我们平时总会有一个电话本记录所有朋友的电话,但是,如果有朋友经常联系,那些朋友的电话号码不用翻电话本我们也能记住,但是,如果长时间没有联系了,要再次联系那位朋友的时候,我们又不得不求助电话本,但是,通过电话本查找还是很费时间的。但是,我们大脑能够记住的东西是一定的,我们只能记住自己 阅读全文
posted @ 2019-06-25 22:39 smile2it 阅读(259) 评论(0) 推荐(0) 编辑
摘要: Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来 阅读全文
posted @ 2019-06-25 22:33 smile2it 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 概述 我们在之前的博文中了解到关于 HashMap 和 Hashtable 这两种集合。其中 HashMap 是非线程安全的,当我们只有一个线程在使用 HashMap 的时候,自然不会有问题,但如果涉及到多个线程,并且有读有写的过程中,HashMap 就不能满足我们的需要了(fail-fast)。在 阅读全文
posted @ 2019-06-25 22:07 smile2it 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 概述 LinkedList 和 ArrayList 一样,都实现了 List 接口,但其内部的数据结构有本质的不同。LinkedList 是基于链表实现的(通过名字也能区分开来),所以它的插入和删除操作比 ArrayList 更加高效。但也是由于其为基于链表的,所以随机访问的效率要比 ArrayLi 阅读全文
posted @ 2019-06-25 22:05 smile2it 阅读(870) 评论(0) 推荐(0) 编辑
摘要: LinkedHashSet 概述 思考了好久,到底要不要总结 LinkedHashSet 的内容 = = 我在之前的博文中,分别写了 HashMap 和 HashSet,然后我们可以看到 HashSet 的方法基本上都是基于 HashMap 来实现的,说白了,HashSet内部的数据结构就是一个 H 阅读全文
posted @ 2019-06-25 22:04 smile2it 阅读(4977) 评论(0) 推荐(0) 编辑