- 博客(36)
- 资源 (15)
- 收藏
- 关注
原创 Java concurrent Framework并发容器之CopyOnWriteArrayList(1.6)源码分析
简介CopyOnWriteArrayList是jdk concurrent包中提供的一个非阻塞型的,线程安全的List实现。CopyOnWriteArrayList是一个线程安全、并且在读操作时无锁的ArrayList。CopyOnWriteArrayList在进行数据修改时,会对数据进行锁定,每次修改时,先拷贝整个数组,然后修改其中的一些元素,完成上述操作后,用一个原子操作替换整个数
2014-01-31 22:54:16 1074
转载 Cache高速缓存guava-libraries Cache
Guava缓存器源码分析——CacheBuilder CacheBuilder作为LoadingCache 与 Cache实例的创建者,具有以下特征: 1、自动载入键值至缓存; 2、当缓存器溢出时,采用最近最少使用原则进行替换。 3、过期规则可基于最后读写时间。 4、设置键值引用级别。 5、元素移
2014-01-31 10:15:40 2739 1
转载 Java concurrent Framework并发容器之ConcurrentHashMap(JDK5,6,7,8)源码分析&ConcurrentSkipListMap
ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。ConcurrentHashMap
2014-01-29 15:27:59 1266
转载 Java concurrent Framework并发容器之ConcurrentHashMap(Doug Lea 非JDK版)源码分析
在7月份的那期 Java理论与实践(“并发集合类”)中,我们简单地回顾了可伸缩性的瓶颈,并讨论了怎么用共享数据结构的方法获得更高的并发性和吞吐量。有时候学习的最好方法是分析专家的成果,所以这个月我们将分析 Doug Lea 的util.concurrent 包中的 ConcurrentHashMap 的实现。JSR 133 将指定 ConcurrentHashMap 的一个版本,该版本针对
2014-01-28 22:40:36 1331
转载 并发导论
原文出处: ifeve 寻寒(@小疯子诗人) 写在前面的话 由于之前工作中的疏忽,在使用Java多线程并发的时候出了问题,遂决心全面学习并发相关知识。写作本文的意图只是希望在写作过程中把想不清楚或是一时无法掌握的地方反复揣摩记录下来。写作本文参考的各种资料较多,抱歉的是文末的参考文献中对一些叫不上名字或没有出处的资料文献并未列举出来。由于本人是初入职场的菜鸟,更是并发的门外汉,
2014-01-28 17:50:30 1497
转载 DBCP,C3P0,Tomcat_JDBC druidDatasource 性能及稳定性测试
DBCP,C3P0,Tomcat_JDBC druidDatasource性能及稳定性测试 1.测试环境: 硬件环境: 数据库服务器:2U*8核 8G内存 测试服务器: 2U*8核 6G内存 软件环境: jdk: 1.6.29 mysql: 5.0.77 mysql_driver: mysql-connector-java-5.0.
2014-01-23 10:51:37 2352 1
原创 Java concurrent Framework之util.concurrent(包括atomic and locks)包概述
Package java.util.concurrent DescriptionUtility classes commonly useful in concurrent programming. This package includes a few small standardized extensible frameworks, as well as some classes that
2014-01-20 09:30:56 1881
原创 Sip相关介绍
参考:JAIN SIP API 简介 http://www.oracle.com/technetwork/cn/articles/oem/introduction-jain-sip-090386-zhs.htmlSIP Servlet 编程模型 http://www.oracle.com/technetwork/cn/testcontent/sip-programmi
2014-01-17 18:02:47 923
原创 Java concurrent Framework 基础知识之进程管理
http://www.cnblogs.com/forstudy/archive/2012/04/05/2433853.html
2014-01-16 21:34:08 4309
原创 Java Collection Framework扩展Apache Common Collections介绍
http://www.cnblogs.com/forstudy/archive/2012/04/05/2433853.html
2014-01-16 18:32:11 1689
原创 Java Collections Framework之Collections源码分析(基于JDK1.6)
Collections类功能:1.算法,比如排序(sort),二分查找(binarySerach),最大值(max)最小值(min),翻转(reverse),旋转(rotate),置换(shuffle),交换(swap)等。 2.提供对集合进行包装的静态方法。比如把指定的集合包装成线程安全的集合synchronizedXXX、包装成不可修改的集合unmodifiableXXX、包装成类型安
2014-01-16 17:40:07 1423
原创 Java Collections Framework之Arrays(method:sort(),binarySearch(),copyOf())部分源码分析(基于JDK1.6)
常见算法时间复杂度O(1): 表示算法的运行时间为常量O(n): 表示该算法是线性算法O(㏒2 n):二分查找算法O(n㏒2 n):快排,合并排序O(n2 ):对数组进行排序的各种简单算法,例如直接插入排序的算法。O(n3 ):做两个n阶矩阵的乘法运算O(2n ):求具有n个元素集合的所有子集的算法O(n!): 求具有N个元素的全排列的算法优O(1)2 n)
2014-01-16 16:56:54 1316
转载 Java Collections Framework之LinkedHashMap源码分析(基于JDK1.6)(??)
注:应用于Cache时,可以重写 removeEldestEntry(Map.Entry) 方法来实施策略,以便在将新映射关系添加到映射时自动移除旧的映射关系。 LinkedHashMap类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是插入次序,或者是最近最少使用(LRU)的次序。只比HashMap慢一点;而在迭代访问时反而更快,因为它使用链表维护内部次序(HashMap
2014-01-16 15:39:09 1121
原创 Java Collections Framework之Deque(LinkedList实现)源码分析(基于JDK1.6)(已补充)
deque 是“double ended queue(双端队列)”的缩写,通常读为“deck”双端队列就是一个两端都是结尾的队列。队列的每一瑞都可以插入数据项和移除数据项。这些方法可以叫作insertLeft()和insertRight(),以及removeLeft()和removeRight()。如果严格禁止调用insertLeft()和removeLeft()方法(或禁用右段的操作),
2014-01-16 10:53:18 1096
原创 Java Collections Framework之Queue(LinkedList实现)源码分析(基于JDK1.6)
Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。BlockingQueue继承了Queue接
2014-01-15 22:42:38 1176
原创 Java Collections Framework之Stack源码分析缺陷,栈改进版(通过LinkedList实现)(基于JDK1.6)
栈是重要的数据结构,从数据结构角度看,栈也是线性表,其特殊性在栈的基本操作是线性表的子集。Stack作为最基本的数据结构,在JDK代码中,也有它的实现,java.util.Stack类是继承了Vector类,来实现了栈的基本功能。1.栈的基本原理栈(Stack)是限定仅在表尾进行插入或者删除操作的线性表。因此,对于栈来说,表尾端有特殊含义,成为栈顶,表头称之为栈底。由下图可以看出,栈的
2014-01-15 21:58:46 1826
转载 Java Collections Framework之HashSet及LinkedHashSet源码分析(基于JDK1.6)
Java容器类的用途是“保存对象”,分为两类:Map——存储“键值对”组成的对象;Collection——存储独立元素。Collection又可以分为List和Set两大块。List保持元素的顺序,而Set不能有重复的元素。 本文分析Set中最常用的HashSet类,并简单介绍和对比LinkedHashSet。 首先对Set接口进行简要的说明。 存入Set的每
2014-01-15 17:51:27 1286
转载 Java Collections Framework之LinkedList源码分析(基于JDK1.6)
LinkedList 或 ArrayList结构改变包括:向ArrayList添加、删除元素,或者明确的手动修改数组大小。如果仅仅是给一个元素赋值,不属于结构的改变。 结构改变引起的问题: 可能导致Iterator报ConcurrentModificationException异常。 注意:当ArrayList使用了iterator()方法产生自身对应的Iterato
2014-01-15 17:22:24 1074
原创 Java Collections Framework之TreeMap源码分析(基于JDK1.6)
红黑树数据结构简介红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(l
2014-01-15 09:44:46 1422
转载 Java Collections Framework之HashMap源码分析(基于JDK1.6)
在Java集合类中最常用的除了ArrayList外,就是HashMap了。本文尽自己所能,尽量详细的解释HashMap的源码。一山还有一山高,有不足之处请之处,定感谢指定并及时修正。 在看HashMap源码之前先复习一下数据结构。 Java最基本的数据结构有数组和链表。数组的特点是空间连续(大小固定)、寻址迅速,但是插入和删除时需要移动元素,所以查询快,增加删除慢。链表恰好相反,
2014-01-14 22:46:40 1513
转载 Java Collections Framework之ArrayList源码分析(基于JDK1.6)
该类是JDK1.2中添加的类,可用于替代Vector(1.1中包含的类库) 其内部持有的也是一个数组。Hierarchy的结构如下: 该类并非线程安全的,主要含有两个字段: elementData:内部持有的数组 size:ArrayList的长度 构造函数如下: 利用该参数初始化该数组。将数组的大小设置为10,为该数组分配内存空
2014-01-14 18:17:51 1089
转载 前淘宝工程师:12306几乎是一个奇迹
1月11日起,12306网站开始销售除夕当日火车票。每到此时,铁路系统唯一的官方购票网站12306就会成为众矢之的。今年也不例外,12306再次被淹没在一片埋怨声中。 1月10日,一位ID名为“代码狗”的前淘宝工程师,后来在一家电商公司做技术副总的IT业内人士也在著名论坛“西西河”上发文,表达了他自己对12306系统的看法。 值得注意的是,“代码狗”在12306系统刚上线时也有过不少微
2014-01-14 17:43:38 1764
原创 Java collections framework(Java容器框架)(基于维基百科补充)
Java collections frameworkFrom Wikipedia, the free encyclopediaJump to: navigation, searchclass- and interface hierarchy of java.util.MapThe Java collections framework (JCF)
2014-01-14 13:58:18 2517
转载 操作系统内存管理——分区、页式、段式、段页式管理
1. 内存管理方法 内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。 2. 连续分配存储管理方式 连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。2.1 单一连续存储管理 在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可
2014-01-13 22:19:42 5317
转载 性能调优攻略
关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充。在开始这篇文章之前,大家可以移步去看一下酷壳以前发表的《代码优化概要》,这篇文章基本上告诉你——要进行优化,先得找到性能瓶颈!
2014-01-13 17:30:31 1588
原创 JAVA系列之对象的序列化与反序列化
1 简介对象序列化(Serializable)是指将对象转换为字节序列的过程,而反序列化则是根据字节序列恢复对象的过程。序列化一般用于以下场景:1.永久性保存对象,保存对象的字节序列到本地文件中;2.通过序列化对象在网络中传递对象;3.通过序列化在进程间传递对象。对象所属的类必须实现Serializable或是Externalizable接口才能被序列化。对实现
2014-01-12 23:13:24 1122
转载 java NIO模式之Reactor
Java NIO非堵塞应用通常适用于在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。Java NIO非堵塞技术实际是采取React
2014-01-12 21:12:53 1411
转载 I/O子系统:select,poll,epoll,kqueue, iocp(Windows)及各种I/O复用机制 模式Reactor Proactor
首先,介绍几种常见的I/O模型及其区别,如下:《Unix网络编程》blocking I/Ononblocking I/OI/O multiplexing (select and poll)signal driven I/O (SIGIO)asynchronous I/O (the POSIX aio_functions)读数据的例子blo
2014-01-12 17:04:09 3738 1
转载 I/O系统:中断、DMA、通道
一、轮询方式 对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的一种管理方式。它定时对各种设备轮流询问一遍有无处理要求。轮流询问之后,有要求的,则加以处理。在处理I/O设备的要求之后,处理机返回继续工作。 尽管轮询需要时间,但轮询不比I/O设备的速度要快得多,所以一般不会发生不能及时处理的问题。 当然,再快的处理机,能处理的输入输出设备的数量也是有一定限度的。而且,
2014-01-12 15:27:21 6133
转载 JAVA NIO2模式之Proactor( JDK7 AIO异步网络IO初探)
按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞IO、非阻塞IO、IO服用、信号驱动IO都是同步IO
2014-01-09 22:26:06 4400
原创 dubbo分布式SOA框架
项目地址:http://code.alibabatech.com/wiki/display/dubbo/Home-zh自开源后,已有不少非阿里系公司在使用Dubbo,参见:已知用户那么,Dubbo是什么?Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含:远程通讯: 提供对多种基于长连接的
2014-01-06 22:34:00 7257
转载 Linux sysctl.conf优化方案
Sysctl是一个允许您改变正在运行中的Linux系统的接口。它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。基于这点,sysctl(8) 提供两个功能:读取和修改系统设置。查看所有可读变量:% sysctl -a读一个指定的变量,例如 kern.maxproc: % sysc
2014-01-04 19:05:14 1818
转载 Linux的sysctl 命令参数
Linux内核通过/proc虚拟文件系统向用户导出内核信息,用户也可以通过/proc文件系统或通过sysctl命令动态配置内核。比如,如果我们想启动NAT,除了加载模块、配置防火墙外,还需要启动内核转发功能。我们有三种方法:1. 直接写/proc文件系统# echo 1 > /proc/sys/net/ipv4/ip_forward2. 利用sysctl命令# sysctl
2014-01-04 18:59:42 1437
转载 JVM Management API
JVM本身提供了一组管理的API,通过该API,我们可以获取得到JVM内部主要运行信息,包括内存各代的数据、JVM当前所有线程及其栈相关信息等等。各种JDK自带的剖析工具,包括jps、jstack、jinfo、jstat、jmap、jconsole等,都是基于此API开发的。本篇对这部分内容进行一个详细的说明。 参考:http://java.sun.com/javase/6/doc
2014-01-02 17:55:57 1491
转载 Apache Tomcat Monitor - Lambda Probe - [Tomcat]
Lambda Probe是一个基于Web以实时的方式来管理单个Tomcat主机的工具。它除了具备标准Tomcat Manager大部份功能之外还提供一些能够帮助Web开发者和系统管理员更加清楚地了解Tomcat运行情况的功能。系统环境:操作系统:Centos 5.3 32bit应用系统:Tomcat 6.0安装路径: /usr/local/tomcat源码位
2014-01-02 17:48:10 3241
转载 Linux容器虚拟化技术介绍
Linux conatiners (LXC) 是在Linux平台上基于容器的虚拟化技术的未来标准,它和传统的解决方案如Linux-VServer和OpenVZ有所区别。最初的LXC技术是由IBM研发的,目前已经进入Linux内核主线,这意味着LXC技术将是目前最有竞争力的轻量级虚拟容器技术,相比较传统的VServer和OpenVZ轻量级虚拟技术(两者都需要对标准内核进行补丁),发展潜力更大。
2014-01-02 11:12:35 4270
华为智能汽车解决方案_intelligent-driving-computing-platform-whitepaper.pdf
2020-10-28
中国计算机学会推荐国际学术会议和期刊目录-2019 (1).pdf
2020-09-22
vimrc--2014-10-06
2014-10-06
Linux Performanceand Tuning Guidelines IBM RedBook4285.pdf
2014-02-06
Scalability, Availability & Stability Patterns.pdf
2012-11-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人