- 博客(4)
- 资源 (7)
- 收藏
- 关注
原创 Java中的反射及Bean容器的实现
编程语言中的反射(Refection)指的是可以在程序运行期动态加载一个类。与之相关的是自省(Introspection),这个指的是程序自己可以获取一个类型的描述信息,例如获取一个类的所有接口定义、一个接口的所有形参。当编程语言有了这些语言特性之后,可以在很大程度上解决代码耦合问题,所以在Java的世界里,可以看到很多库/框架使用了反射技术。类似Spring的Bean容器实现就是大量运用了反
2015-05-31 15:53:40 3432
原创 Drill中实现HTTP storage plugin
Apache Drill可用于大数据的实时分析,引用一段介绍:受到Google Dremel启发,Apache的Drill项目是对大数据集进行交互式分析的分布式系统。Drill并不会试图取代已有的大数据批处理框架(Big Data batch processing framework),如Hadoop MapReduce或流处理框架(stream processing framework)
2015-05-30 20:35:28 3208
原创 无锁有序链表的实现
无锁有序链表可以保证元素的唯一性,使其可用于哈希表的桶,甚至直接作为一个效率不那么高的map。普通链表的无锁实现相对简单点,因为插入元素可以在表头插,而有序链表的插入则是任意位置。本文主要基于论文High Performance Dynamic Lock-Free Hash Tables实现。主要问题链表的主要操作包含insert和remove,先简单实现一个版本,就会看到问题所在,以
2015-05-05 19:48:13 2803 4
原创 并行编程中的内存回收Hazard Pointer
接上篇使用RCU技术实现读写线程无锁,在没有GC机制的语言中,要实现Lock free的算法,就免不了要自己处理内存回收的问题。Hazard Pointer是另一种处理这个问题的算法,而且相比起来不但简单,功能也很强大。锁无关的数据结构与Hazard指针中讲得很好,Wikipedia Hazard pointer也描述得比较清楚,所以我这里就不讲那么细了。一个简单的实现可以参考我的gith
2015-05-03 20:44:55 2813
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人