摘要: SynchronousQueue 没有长度,每一个入队操作必须对应一个出队操作,或者每一个出队操作必须对应一个入栈操作,否则阻塞。SynchronousQueue内部提供两种模式TransferStack非公平模式(LIFO)和TransferQueue公平模式(FIFO)。 阅读全文
posted @ 2020-04-23 22:16 源码猎人 阅读(211) 评论(0) 推荐(0) 编辑
摘要: DelayQueue 是JDK中提供的延时队列,内部封装优先级队列,并且提供空阻塞功能。DelayQueue中所有元素必须实现Delayed接口getDelay方法,此方法返回剩余有效时间。 阅读全文
posted @ 2020-04-23 09:27 源码猎人 阅读(335) 评论(0) 推荐(0) 编辑
摘要: Java是面向对象语言,在使用Java编程时,大多数情况下都不会直接操作内存,而且Java也不提倡直接操作内存,但是Java中到底有没有可以直接操作内存的工具类呢?有!Java中提供Unsafe类可以用来来直接操作内存。 阅读全文
posted @ 2020-04-22 11:10 源码猎人 阅读(616) 评论(0) 推荐(0) 编辑
摘要: ConcurrentHashMap是一个经常被使用的数据结构,它在线程安全的基础上提供了更好的写并发能力。ConcurrentHashMap跟Map有很大的不同,内部大量使用volatile和CAS等减少锁竞争,当然代码也比HashMap难理解的多,本章基于JDK1.8对ConcurrentHashMap做基本介绍,后续章节一步步深入。 阅读全文
posted @ 2020-04-19 00:12 源码猎人 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 上一章我们大概了解了MyBatis初始化过程,本章主要了解SqlSessionFactoryBuilder、Configuration,它是构建SqlSessionFactory的主要工具,所有MyBatis配置信息都可以在Configuration中找到,SqlSessionFactoryBuilder的主要作用作用就是构建Configuration,然后使用Configuration构建SqlSessionFactory。 阅读全文
posted @ 2020-04-18 10:57 源码猎人 阅读(156) 评论(0) 推荐(0) 编辑
摘要: LinkedBlockingDeque 是阻塞双向链表队列,它是线程安全的,除了提供两端读写操作外,还具有阻塞功能。内部使用一把锁,在读写操作前必须获取锁,并且每次都是锁整个链表。 阅读全文
posted @ 2020-04-16 22:18 源码猎人 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 很多人都想看spring源码,但是spring模块太多了,翻开一开头皮发麻,然后就放弃了,这里我带领大家一起看spring源码,推荐从ioc看起,spring ioc源码怎么看?我们一定要先找到一个头,最简单的办法就搞个demo,一层一层点进去看。 阅读全文
posted @ 2020-04-15 20:31 源码猎人 阅读(233) 评论(0) 推荐(0) 编辑
摘要: ConcurrentLinkedDeque是线程安全的非阻塞队列,内部结构跟LinkedBlockingQueue一样使用双向链表,最大的区别就是LinkedBlockingDeque使用CSA原则操作,没有用lock。使用它的时候一样需要注意,头节点和尾节点不保证一定是头和尾。 阅读全文
posted @ 2020-04-14 22:27 源码猎人 阅读(222) 评论(0) 推荐(0) 编辑
摘要: ConcurrentLinkedQueue 是线程安全的非阻塞队列,内部是单向链表。ConcurrentLinkedQueue 使用CAS机制保证线程安全,而LinkedBlockingQueue使用两个lock保证线程安全,ConcurrentLinkedQueue 性能比LinkedBlockingQueue高很多。需要注意的是ConcurrentLinkedQueue 的头节点和尾节点都具有滞后性,直接读取不应当准确,不能直接使用,一般需要遍历。 阅读全文
posted @ 2020-04-14 20:53 源码猎人 阅读(789) 评论(0) 推荐(0) 编辑
摘要: PriorityBlockingQueue 是优先级阻塞队列,虽然我们称它为无界,实际上它也是有界的。它跟PriorityQueue 最大的区别在于他是线程安全的,在入队出队时使用同一把锁,在扩容时先解锁,再使用cas原子操作,再重新获取锁。 阅读全文
posted @ 2020-04-13 14:57 源码猎人 阅读(467) 评论(0) 推荐(0) 编辑