echarts数据自我定制(一)
2013-10-21 15:49
232 查看
最近在看林昊写的那本《分布式java应用》,阿里巴巴(包括淘宝、支付宝)是我最想去的地方,所以看淘宝网架构师写的书还是很有必要的。
该书第4章讲到了java.util.concurrent下面的一些常用类,由于书上写的太过笼统,所以找出一些类的源码进行阅读,现把心得写一下,供以后自己参考。
废话不说,先看ArrayBlockingQueue的源码。
ArrayBlockingQueue是一个基于数组的、先进先出、线程安全的集合类,其特色为可实现指定时间的阻塞读写,并且容量是可以限制的。
通过阅读代码,可以看出该类是通过ReentrantLock来保证线程安全的,顺便讲一下ReentrantLock。
ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。此外,它还提供了在激烈争用情况下更佳的性能。在该类的实现中,采用的是不公平锁。
该类没有默认构造函数,从上面的构造函数中可以看出默认情况下采用不公平锁。
offer方法有两种实现,分为阻塞的和非阻塞的。offer(E e)如果在数组满的情况下直接返回false。offer(E e, long timeout,
TimeUnit unit)为阻塞方式,则阻塞unit.toNanos(timeout)纳秒。
poll()
方法也分两种,和上面的差不多。
可以看出在调用iterator()方法时,首先进行加锁,并返回一个Itr的实例。
该Itr实例包含了当前数组尾部的索引以及尾部的元素,调用完毕后释放锁。
该书第4章讲到了java.util.concurrent下面的一些常用类,由于书上写的太过笼统,所以找出一些类的源码进行阅读,现把心得写一下,供以后自己参考。
废话不说,先看ArrayBlockingQueue的源码。
ArrayBlockingQueue是一个基于数组的、先进先出、线程安全的集合类,其特色为可实现指定时间的阻塞读写,并且容量是可以限制的。
通过阅读代码,可以看出该类是通过ReentrantLock来保证线程安全的,顺便讲一下ReentrantLock。
ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。此外,它还提供了在激烈争用情况下更佳的性能。在该类的实现中,采用的是不公平锁。
public ArrayBlockingQueue(int capacity) { this(capacity, false); }
该类没有默认构造函数,从上面的构造函数中可以看出默认情况下采用不公平锁。
offer方法有两种实现,分为阻塞的和非阻塞的。offer(E e)如果在数组满的情况下直接返回false。offer(E e, long timeout,
TimeUnit unit)为阻塞方式,则阻塞unit.toNanos(timeout)纳秒。
poll()
方法也分两种,和上面的差不多。
public Iterator<E> iterator() { final ReentrantLock lock = this.lock; lock.lock(); try { return new Itr(); } finally { lock.unlock(); } }
可以看出在调用iterator()方法时,首先进行加锁,并返回一个Itr的实例。
Itr() { lastRet = -1; if (count == 0) nextIndex = -1; else { nextIndex = takeIndex; nextItem = items[takeIndex]; } }
该Itr实例包含了当前数组尾部的索引以及尾部的元素,调用完毕后释放锁。
相关文章推荐
- 【数据结构之排序2】直接插入排序
- 利用lseek制作任意大小的文件
- .NET平台开源JSON库LitJSON的使用方法
- IIS 无法启动错误:"指定的网络名格式无效"
- C/C++ Linux 程序员必须了解的 10 个工具
- How to Protect GRUB with Password in RHEL / CentOS / Fedora Linux
- 在filter中获取action的参数值
- {扩展欧几里得}
- 可执行文件的结构和加载
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板