本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
paulwong - fantaxy025025
- johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- gengyun12
- jickcai
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- zxq_2017
- nychen2000
- lzyfn123
- 龙儿筝
- forestqqqq
- wjianwei666
- ajinn
- siemens800
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- kingwell.leng
编程语言专栏最新文章
Jdk1.7 JUC源码增量解析(6)-Phaser
Jdk1.7 JUC源码增量解析(6)-Phaser
作者:大飞
功能简介:
Phaser是jdk1.7提供的类似于CyclicBarrier和CountDownLatch的同步机制。
它支持更灵活的使用方式:1.使用过程中可以随时注册和注销参与者;2.不同于CyclicBarrier,分离出"到达"和"等待"机制;3.支持结束,默认情况 ...
Jdk1.7 JUC源码增量解析(5)-ForkJoin-ForkJoin框架其他过程及方法
Jdk1.7 JUC源码增量解析(5)-ForkJoin-ForkJoin框架其他过程及方法
作者:大飞
概述:
这篇会看一下ForkJoin框架的其他过程,如取消任务、关闭Pool,以及前面没分析到一些方法。
源码分析:
前面我们看到,ForkJoinTask本身也是Future的实现,所以也会有取消过程,看下实现:
public boole ...
Jdk1.7 JUC源码增量解析(4)-ForkJoin-ForkJoin任务的fork/join过程
Jdk1.7 JUC源码增量解析(4)-ForkJoin-ForkJoin任务的fork/join过程
作者:大飞
概述:
这篇通过分析一个ForkJoin任务的执行过程来分析ForkJoin的相关代码,主要侧重于分裂(fork)/合并(join)过程。
源码分析:
还是先看一个代码示例,这个示例介绍篇出现过,这里只贴出任务代码:
publi ...
Jdk1.7 JUC源码增量解析(3)-ForkJoin-非ForkJoin任务的执行过程
Jdk1.7 JUC源码增量解析(3)-ForkJoin-非ForkJoin任务的执行过程
作者:大飞
概述:
这篇通过分析一个非ForkJoin(Runnable或者Callable)任务的执行过程来分析ForkJoin的相关代码,注意这里说的非ForkJoin任务实际上也是ForkJoinTask,只是没有分裂(fork)/合并(join)过程。
源码分析:
...
Jdk1.7 JUC源码增量解析(2)-ForkJoin-框架概览
Jdk1.7 JUC源码增量解析(2)-ForkJoin-框架概览
作者:大飞
ForkJoin框架是什么?
ForkJoin框架是jdk1.7提供的一个并行计算框架。
ForkJoin框架能干什么?
首先ForkJoin框架是针对一些符合ForkJoin模型的任务而设计的,那什么是ForkJoin模型呢?看个图先:
...
Jdk1.7 JUC源码增量解析(1)-FutureTask
Jdk1.7 JUC源码增量解析(1)-FutureTask
作者:大飞
功能简介:
FutureTask是一种异步任务(或异步计算),举个栗子,主线程的逻辑中需要使用某个值,但这个值需要负责的运算得来,那么主线程可以提前建立一个异步任务来计算这个值(在其他的线程中计算),然后去做其他事情,当需要这个值的时候再通过刚才建立的异步任务来获取这个值,有点并行的意思,这样可以缩短整个 ...
LeetCode[贪心算法] - #122 Best Time to Buy and Sell Stock II
原题链接:#122 Best Time to Buy and Sell Stock II
要求:
假定你有一个包含n个元素的整型数组,其中的第i个元素是指定股票在第i天的价格。
设计一个算法来计算在这n天里可能获得的最大利润。注:只考虑单只该股票的买入和卖出时机,一天内可以买卖多次,但不允许同一时间内存在多次交易(即:再次买入之前,必须买入该股票)
难度:中等
分析:
...
Jdk1.6 JUC源码解析(27)-Exchanger
Jdk1.6 JUC源码解析(27)-Exchanger
作者:大飞
功能简介:
Exchanger是一种线程间安全交换数据的机制。可以和之前分析过的SynchronousQueue对比一下:线程A通过SynchronousQueue将数据a交给线程B;线程A通过Exchanger和线程B交换数据,线程A把数据a交给线程B,同时线程B把数据b交给线程A。可见,Synchronou ...
Jdk1.6 JUC源码解析(26)-ConcurrentSkipListMap、ConcurrentSkipListSet
Jdk1.6 JUC源码解析(26)-ConcurrentSkipListMap、ConcurrentSkipListSet
作者:大飞
功能简介:
ConcurrentSkipListMap是一种线程安全的有序的Map。一般我们使用有序Map,不要求线程安全的情况下,可以使用TreeMap,要求线程安全的话,就可以使用ConcurrentSkipListMap。
Concu ...
Jdk1.6 JUC源码解析(25)-ConcurrentHashMap
Jdk1.6 JUC源码解析(25)-ConcurrentHashMap
作者:大飞
功能简介:
ConcurrentHashMap是一种线程安全的HashMap。相对于HashTable和Collections.synchronizedMap(),Concurre ...
Jdk1.6 JUC源码解析(24)-ConcurrentLinkedQueue
Jdk1.6 JUC源码解析(24)-ConcurrentLinkedQueue
作者:大飞
功能简介:
ConcurrentLinkedQueue是一种基于单向链表实现的无界的线程安全队列。队列中的元素遵循先入先出(FIFO)的规则。新元素插入到队列的尾部,从队列头部取出元素。
ConcurrentLinkedQueue内部采用一种wait-free(无等待)算法来实现。
...
Jdk1.6 JUC源码解析(23)-CopyOnWriteArrayList、CopyOnWriteArraySet
Jdk1.6 JUC源码解析(23)-CopyOnWriteArrayList、CopyOnWriteArraySet
作者:大飞
功能简介:
CopyOnWriteArrayList是一种线程安全的ArrayList。顾名思义,有写操作时 ...
Jdk1.6 JUC源码解析(22)-LinkedBlockingDeque
Jdk1.6 JUC源码解析(22)-LinkedBlockingDeque
作者:大飞
功能简介:
LinkedBlockingDeque是一种基于双向链表实现的有界的(可选的,不指定默认int最大值)阻塞双端队列。
双端队列一般适用于工作密取模式,即每个消费者都拥有自己的双端队列,如果某个消费者完成了自己队列的全部任务,可以到其他消费者双端队列尾部秘密获取 ...
Jdk1.6 JUC源码解析(21)-ExecutorCompletionService
Jdk1.6 JUC源码解析(21)-ExecutorCompletionService
作者:大飞
功能简介:
ExecutorCompletionService用于执行一批任务,然后按照任务执行完成的顺序来获取任 ...
Jdk1.6 JUC源码解析(20)-Executors
Jdk1.6 JUC源码解析(20)-Executors
作者:大飞
功能简介:
Executors是JUC包提供的一个工具性质的帮助类,它针对ExecutorService、ScheduledExecutorService、ThreadFactory和Callable提供了一系列工厂方法和工具方法。
源码分析:
首先看下针对ExecutorService提供的一些工 ...
Jdk1.6 JUC源码解析(19)-ScheduledThreadPoolExecutor
Jdk1.6 JUC源码解析(19)-ScheduledThreadPoolExecutor
作者:大飞
功能简介:
ScheduledThreadPoolExecutor是一种类似Timer的定时器或者说是调度器,和Timer比起来主 ...
Jdk1.6 JUC源码解析(18)-DelayQueue
Jdk1.6 JUC源码解析(18)-DelayQueue
作者:大飞
功能简介:
DelayQueue是一种无界的阻塞队列,队列里只允许放入可以"延期"的元素,队列中列头的元素是最先"到期"的元素。如果队列中没有任何元素"到期",尽管队列中有元素,也不能从队列头获取到任何元素。
源码分析:
首先还是看一下 ...
Jdk1.6 JUC源码解析(17)-ThreadPoolExecutor
Jdk1.6 JUC源码解析(17)-ThreadPoolExecutor
作者:大飞
功能简介:
ThreadPoolExecutor是JUC包中提供的线程池,使用ThreadPoolExecutor的好处一方面是能重用线程资源,避免重复创建线程带来的开销;另一方面是ThreadPoolExecutor提供了内部资源(线程、任务)的管理功能,方便我们监控线程池工作状态。
...
Jdk1.6 JUC源码解析(16)-FutureTask
Jdk1.6 JUC源码解析(16)-FutureTask
作者:大飞
功能简介:
FutureTask是一种异步任务(或异步计算),举个栗子,主线程的逻辑中需要使用某个值,但这个值需要复杂的运算得来,那么主线程可以提前建立一个异步任务来计算这个值(在其他的线程中计算),然后去做其他事情,当需要这个值的时候再通过刚才建立的异步任务来获取这个值,有点并行的意思,这样可以缩短整个主 ...
Jdk1.6 JUC源码解析(15)-SynchronousQueue
Jdk1.6 JUC源码解析(15)-SynchronousQueue
作者:大飞
功能简介:
SynchronousQueue是一种特殊的阻塞队列,它本身没有容量,只有当一个线程从队列取数据的同时,另一个线程才能放一个数据到队列中,反之亦然。存取过程相当于一个线程把数据(安全的)交给另一个线程的过程。
SynchronousQueue也支持公平和非公平模式。
源码分析: ...
编程语言热门文章
博客专栏评论
skran 写道大兄弟文章写的不错,排版有点问题,代码长了既没换行也没滚动条现在都是Markdown写 ...
234390216 评论了 Spring Boot(05)——SpringApplication ...
234390216 评论了 Spring Boot(05)——SpringApplication ...
iteye这个博客主体内容定义的宽度只有700,导致部分代码没有展示出来。iteye现在都没有人维护了 ...
234390216 评论了 Spring(25)——ClassPathBeanDefinitionS ...
234390216 评论了 Spring(25)——ClassPathBeanDefinitionS ...