- 博客(5)
- 资源 (17)
- 收藏
- 关注
原创 Java 线程池 --- ThreadPoolExecutor源码分析
在多线程编程中,或多或少都听过或者使用过线程池,合理利用线程池能够带来三个好处。降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必
2018-01-23 21:13:57 846
原创 Java 多线程 --- FutureTask 源码分析
在多线程编程中,创建线程可以直接继承Thread,也可以实现Runnable接口。但是这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。而自从Java 1.5开始,就提供了Callable和Future,FutureTask,通过它们可以在任务执行完毕之后得到任务执行结果,
2018-01-18 20:07:07 495
原创 Java 并发 --- ConcurrentSkipListMap源码分析
在学习ConcurrentSkipListMap 之前 我们需要先来学习一种随机化的数据结构–跳跃表(skip list) 对于数组的查找可以有很多方法,如果是有序的,那么可以采用二分查找,二分查找要求元素可以随机访问,所以决定了需要把元素存储在连续内存。这样查找确实很快,但是插入和删除元素的时候,为了保证元素的有序性,就需要大量的移动元素了。 对于链表而言,不能进行随机访问,也就是说不能单纯的
2018-01-16 19:14:39 595
原创 Java 并发 --- Thread 源码浅析
在多线程编程中,如果要使用线程来执行任务,那么最简单的方式就是使用Thread类来创建一个线程,当然也可以使用线程池的方式。 线程是在进程中执行的单位,线程的资源开销相对于进程的开销是相对较少的,所以我们一般创建线程执行,而不是进程执行。 本文不是学习Thread的使用,而是通过Thread类来一探线程从创建到结束的过程。继承体系 Thread类实现了Runnable接口,因此Thr
2018-01-08 14:10:33 601
原创 Java 并发 --- CopyOnWriteArrayList 源码分析
CopyOnWriteArrayList,顾名思义,Write的时候总是要Copy,读写分离的思想,通俗地讲,当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器复制出一个新的容器,然后在新的容器里添加元素,添加玩元素之后再讲原来容器的引用指向新的容器。
2018-01-04 12:49:30 349
TCP-IP详解卷1:协议
2015-10-15
nasm中文手册
2015-03-12
STL源码剖析简体中文完整版清晰
2014-11-11
C++标准程序库
2014-11-10
ACM培训-动态规划
2014-11-10
取石子游戏_博弈
2014-11-10
白话经典算法之七大排序第2版
2014-11-10
背包问题九讲
2014-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人