- 博客(5)
- 问答 (2)
- 收藏
- 关注
原创 《java高并发编程详解》第5集:ConcurrentLinkedQueue设计思路总结
上一篇ArrayBlockingQueue的设计思想简单的介绍了ArrayBlockingQueue依赖ReentrantLock解决读写同步的问题。被你文章介绍ConcurrentLinkedQueue的设计思路: ConcurrentLinkedQueue顾名思义是同步链表队列,实现先进先出的基本功能,新增Node插入队列尾部,从队列头部获取节点。首先看下ConcurrentLinkedQu...
2019-12-25 10:47:01 256
原创 《java高并发编程详解》第4集:ArrayBlockingQueue的设计思想
上一集ReentrantLock的设计思想和简单实现讲了ReentrantLock的设计思想和简单实现 这几集我们简单的讲一下ArrayBlockingQueue设计思想和简单实现 首先我们可以看下ArrayBlockingQueue的类图 ArrayBlockingQueue的实例包含一个ReentrantLock和notEmpty/notFull两个Condition。为我们写入和读...
2019-12-24 17:18:19 193
原创 《java高并发编程详解》第3集:ReentrantLock的设计思想和简单实现
Java并发编程中一定会用到线程同步,同步就会用到锁资源 ReentrantLock类是JUC包给定的一个工具锁,实现了公平锁和非公平锁,实现了可重入,实现了多等待队列 ReentrantLock的基本设计图如下 ReentrantLock其实依赖了AbstractQueuedSynchronizer类实现的多情况锁,而AbstractQueuedSynchronizer依赖了双向链表和...
2019-12-20 16:14:22 175
原创 【深入理解java虚拟机】第4集--class汇编文件初识
java代码被编译成class文件,class文件的结构分为几部分 1:文件基本信息(大小,修改时间,MD5) 2:版本号,访问标志(public/private) 3:常量池(constant pool)文件中出现的单词,数字等 4:方法区(所有的方法,包括默认生成的构造方法) 5:方法区的异常表(异常范围,异常类型,异常处理) Classfile /Users/david/Des...
2019-12-18 20:12:37 318
原创 《java高并发编程详解》第2集:自定义实现线程池
Executor是我们在编程中经常用到的核心接口,属于java.util.concurrent包的核心接口之一,主要的任务就是void execut(Runnable command)方法 而ThreadPoolExecutor是我们最经常接触的线程池实力,继承关系如下 线程池的最主要的任务是 1:维持多个工作线程, 2:接受新的Runnable任务, 3:执行Runnable任务 ...
2019-12-03 13:36:29 196
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人