一直不明白pipe是如何唤醒selector的,所以又去看了jdk的源码(openjdk下载),整理了如下:以Java nio自带demo : OperationServer.javaOperationClient.java(见附件)其中server端的核心代码:public void initSe...
分类:
编程语言 时间:
2014-07-09 19:42:36
阅读次数:
342
ReentrantLock 一个可重入的互斥锁 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。这个类主要基于AQS(AbstractOwnableSynchronizer)封装的 公平与非公平锁。所谓公平锁就是指在多个线程的争...
分类:
编程语言 时间:
2014-07-09 14:31:42
阅读次数:
306
通过前面的讲述,相信你已经对Volley的原理有了一定了解。本章将举一些我们能在应用中直接用到的例子,第一个例子是
NetworkImageView类,其实NetworkImageView顾名思义就是将异步的操作封装在了控件本身,这种设计可以充分保留控件的移植性和维护性。NetworkImageView通过调用setImageUrl来指定具体的url:
public void setIma...
分类:
移动开发 时间:
2014-07-09 12:19:19
阅读次数:
221
如果各位看官仔细看过我之前的文章,实际上Network这块的只是点小功能的补充。我们来看下NetworkDispatcher的核心处理逻辑:
while (true) {
try {
// Take a request from the queue.
request = mQueue.take();...
分类:
移动开发 时间:
2014-07-09 10:11:29
阅读次数:
207
Volley:google出的一个用于异步处理的框架。由于本身的易用性和良好的...
分类:
移动开发 时间:
2014-07-08 18:14:16
阅读次数:
250
主题
核心概念
IO模型
服务器管理
序列化
set分析
get分析
cas分析
补充文档
核心概念
spymemcached是memcached客户端的开源java实现,我们学习任何一种软件,首先需要从整体上对该软件有个了解,也就是中心领域模型是什么?我们首先来看下它的几个核心概念以及组成关系。
MemcachedClient:对于使用客户端...
分类:
其他好文 时间:
2014-07-08 14:27:58
阅读次数:
746
一、服务启动Nova-scheduler服务的启动入口脚本是cmd包下的scheduler.py,其主要监听来自于消息队列中topic=scheduler(可配置)的消息。在服务启动过程中,其将初始化一个SchedulerManager实例作为该服务的Handler,来处理接受到的消息请求。同时,N...
分类:
其他好文 时间:
2014-07-06 20:45:27
阅读次数:
200
前面几篇通过源码分析了Volley是怎样进行请求调度及请求是如何被实际执行的,这篇最后来看下请求结果是如何交付给请求者的(一般是Android的UI主线程)。类图:请求结果的交付是通过ResponseDelivery接口完成的,它有一个实现类ExecutorDelivery, 主要有postResp...
分类:
移动开发 时间:
2014-07-06 18:55:46
阅读次数:
186
SpillableMemoryChannel是1.5版本新增的一个channel。这个channel优先将evnet放在内存中,一旦内存达到设定的容量就使用file channel写入磁盘。然后读的时候会按照顺序读取:会通过一个DrainOrderQueue来保证不管是内存中的还是溢出(本文的“.....
分类:
其他好文 时间:
2014-07-06 16:41:08
阅读次数:
296
关于java中ReentrantLock类的源码分析以及总结与例子...
分类:
编程语言 时间:
2014-07-06 00:34:36
阅读次数:
311