
1.1.1.7 程序语言基础-并发
文章平均质量分 90
ajian005
这个作者很懒,什么都没留下…
展开
-
Ubuntu安装及Ubuntu下常用软件安装(不断补充)及Windows相关--软件开发用途
Ubuntu下载:原创 2014-04-26 22:21:49 · 3118 阅读 · 0 评论 -
Java concurrent Framework并发之fork-join框架分析
学习如何使用 Java 7 中的 fork-join 框架实现细粒度并行性硬件趋势驱动编程语言语言、库和框架形成了我们编写程序的方式。Alonzo Church 早在 1934 年就曾表明,所有已知的计算性框架对于它们所能表示的程序集都是等价的,程序员实际编写的程序集是由特定语言形成的,而编程模型(由语言、库和框架驱动)可以简化这些语言的表达。另一方面,一个时代的主流硬转载 2014-02-02 22:41:19 · 1348 阅读 · 0 评论 -
Java concurrent Framework并发容器之concurrent.atomic包源码分析
concurrent.atomic包简介类的小工具包,支持在单个变量上解除锁的线程安全编程。事实上,此包中的类可将volatile值、字段和数组元素的概念扩展到那些也提供原子条件更新操作的类,其形式如下: boolean compareAndSet(expectedValue, updateValue);如果此方法(在不同的类间参数类型也不同)当前保持expectedValue,则以原创 2014-02-01 15:07:33 · 1235 阅读 · 0 评论 -
Java concurrent Framework并发容器之ConcurrentLinkedQueue(1.6)源码分析 ??
1. ConcurrentLinkedQueue简介public class ConcurrentLinkedQueue extends AbstractQueue implements Queue,Serializable一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部 是队列中时间最长的元素。队列的尾部 是队列中时间最短的元素。新的元原创 2014-02-01 12:16:46 · 1024 阅读 · 0 评论 -
Java concurrent Framework并发容器之ArrayBlockingQueue(1.6)源码分析
ArrayBlockingQueue简介public class ArrayBlockingQueue extends AbstractQueue implements BlockingQueue, Serializable一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元原创 2014-02-01 11:27:29 · 1205 阅读 · 0 评论 -
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 · 1337 阅读 · 0 评论 -
Java Collections Framework之HashMap源码分析(基于JDK1.6)
在Java集合类中最常用的除了ArrayList外,就是HashMap了。本文尽自己所能,尽量详细的解释HashMap的源码。一山还有一山高,有不足之处请之处,定感谢指定并及时修正。 在看HashMap源码之前先复习一下数据结构。 Java最基本的数据结构有数组和链表。数组的特点是空间连续(大小固定)、寻址迅速,但是插入和删除时需要移动元素,所以查询快,增加删除慢。链表恰好相反,转载 2014-01-14 22:46:40 · 1534 阅读 · 0 评论 -
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 · 4444 阅读 · 0 评论 -
ACE初学者使用指南
注意:ACE网络框架比较有名,30万行左右代码,开发了10几年,数十人的核心开发团队加之数千人的测试队伍,可以说想不开发出好东西也难。 所以要说这个框架好,那好的原因实在太多,最主要的好在于两条:“跨平台(支持几十种平台),可复用”,所以今日说说我认为他不足的地方,以作为这段时间学习它的一个总结: 国内有三本和ACE框架有关的书,我都读了,整个加起来读了能有10几不到20天转载 2013-06-05 09:34:02 · 3722 阅读 · 0 评论 -
Software design pattern
In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context insoftware design. A design pattern is not a finished design that ca转载 2013-01-19 19:03:29 · 2195 阅读 · 0 评论 -
Linux 进程管理剖析: Linux 同步方法剖析 内核原子,自旋锁和互斥锁
M. Tim Jones, 顾问工程师, Emulex简介: 在学习 Linux® 的过程中,您也许接触过并发(concurrency)、临界段(critical section)和锁定,但是如何在内核中使用这些概念呢?本文讨论了 2.6 版内核中可用的锁定机制,包括原子运算符(atomic operator)、自旋锁(spinlock)、读/写锁(reader/writer lock)和内核转载 2012-12-18 19:31:35 · 1151 阅读 · 0 评论 -
第21章并发--java编程思想中文第四版-备忘笔记
博学,审问、慎思、明辨、笃行 读实用书时要提出的四个问题: (1)整体来说,这本书到底在谈些什么?big what? 并没有改变多少。 (2)作者细部说了什么,怎么说的? small what? how? (3)这本书说得有道理吗? 是全部有道理,还是部分有道理?why? 作者最终的目标,加上他建议的达成目标的方法--原创 2011-05-11 10:06:00 · 2685 阅读 · 0 评论 -
AMQP和RabbitMQ入门
http://www.infoq.com/cn/articles/AMQP-RabbitMQ准备开始高级消息队列协议(AMQP1)是一个异步消息传递所使用的应用层协议规范。作为线路层协议,而不是API(例如JMS2),AMQP客户端能够无视消息的来源任意发送和接受信息。现在,已经有相当一部分不同平台的服务器3和客户端可以投入使用4。相关厂商内容IBM 360°讲师团招募转载 2011-06-08 07:53:00 · 1466 阅读 · 0 评论 -
Java concurrent Framework并发之Executor框架分析(核心的地方要多次研究)
ThreadPoolExecutor简介public class ThreadPoolExecutor extends AbstractExecutorService一个ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用Executors工厂方法配置。线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增原创 2014-02-01 18:45:32 · 2203 阅读 · 0 评论 -
Maven实战(不断细化中)
作者网站:http://www.juvenxu.com/mvn-in-action/Maven简介 (免费试读) 1.1 何为Maven1.2 为什么需要Maven1.3 Maven与极限编程1.4 被误解的MavenMaven安装 (免费试读) (免费迷你版) 2.1 在Windows上安装Maven2.2 在基于Unix的系统上安装Maven2.3原创 2014-05-05 15:33:29 · 1251 阅读 · 0 评论 -
可伸缩性, 可用性和稳定性模式 Scalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns一 自我有要求的读者应该提出问题:(研习:掌握层次:)能力级别:不会(了解)——领会(理解)——熟练——精(why)——通(融汇贯通)1.1 什么是Scalability, Availability&Stability Patterns ? 1.2 以上各个模式都说了些什么?原创 2011-02-17 16:33:00 · 3789 阅读 · 0 评论 -
The j.u.c Synchronizer Framework翻译
Java concurrent Framework concurrent.lock并发之AbstractQueuedSynchronizer源码分析 (先设个坑,研读源码后补充)转载 2014-03-02 10:28:21 · 1566 阅读 · 0 评论 -
fastjson(json序列化器)序列化部分源码解析
fastjson(json序列化器)序列化部分源码解析 http://www.iteye.com/topic/1098058转载 2016-09-29 18:30:35 · 1062 阅读 · 0 评论 -
Hadoop Reading List
[说明:之前的那篇分布式系统领域经典论文翻译集>>颇显庞杂,涵盖内容五花八门,也有人提出不知道从哪开始。所以呢,就有了这一篇,主要以组成Hadoop生态系统的各组件为线索,串起了其中相对重要的那些论文,同时基本上也是按照从前往后的顺序由浅入深的,其中也包含了翻译集中所未出现的一些。这些文章中,标为(译)的那些是本人翻译的,标为(zz)的那些是其他人的译文或原创,剩余未标明的部分基本上是英文原文,可转载 2011-11-16 22:39:31 · 1465 阅读 · 0 评论 -
分布式系统领域经典论文翻译集
分布式领域论文译序sql&nosql年代记SMAQ:海量数据的存储计算和查询一.google论文系列1. google系列论文译序2. The anatomy of a large-scale hypertextual Web search engine3. 面向星球的网络搜索:google集群架构4. GFS:goo转载 2011-11-16 21:27:35 · 2579 阅读 · 3 评论 -
HttpClient介绍
参考HttpClient: PoolingHttpClientConnectionManager HttpClient池:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html http://hc.apache.org/httpcomponents-client-ga/examples原创 2016-04-12 20:07:54 · 901 阅读 · 0 评论 -
JDKjdk1.4、jdk5.0、JDK6.0、 JDK7.0、JDK8.0、JDK9.0(2016年发布) 新特性
jdk1.4、jdk5.0、JDK6.0、 JDK7.0 新特性 http://blog.sina.com.cn/s/blog_4bb5650c0100gxo4.html1.4版本特性 JDK1.4新特性之I/O APIs篇 http://vvnet.javaeye.com/blog/463740 Java NIO原理和使用 http://gzcj.javaeye.com/bl原创 2011-02-18 13:19:00 · 4983 阅读 · 1 评论 -
Java_BIO/NIO/AIO
基于NIO的java高性能网络应用的技术研究 http://www.docin.com/p-65119553.html#(一) BIO传统的server/client实现是基于thread per request.(二) NIO最核心的一点就是反应器模式:当有感兴趣的事件发生时,就通知对应的事件处理器去处理事件,如果没有,则不处理。所以使用一个线程做轮询转载 2011-06-07 18:17:00 · 1361 阅读 · 0 评论 -
Linux epoll浅析(收集整理版)
Linux epoll详解一、什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linuxkernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I原创 2014-07-02 11:17:15 · 1428 阅读 · 0 评论 -
java.lang包之String,StringBuffer,StringBuilder分析(设个坑,有时间补充)
参考:【总结】String in Java : http://hxraid.iteye.com/blog/522167原创 2014-03-05 10:27:15 · 1212 阅读 · 0 评论 -
为什么Java中的long与double不是线程安全的?
Long与double操作并不是原子的在java的部分执行环境中,对于long以及double的操作并不是原子的。 例如有一个long类型的longfield字段,某个线程正在执行: longfield = 123L ; 这样的指定操作,而同时有另一个线程正在执行: longfield = 456L;原创 2011-02-18 15:17:00 · 2716 阅读 · 0 评论 -
jdk1.5新特性 ConcurrentHashMap
曾经研究过jkd1.5新特性,其中ConcurrentHashMap就是其中之一,其特点:效率比Hashtable高,并发性比hashmap好。结合了两者的特点。 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的转载 2011-06-08 08:52:00 · 1003 阅读 · 0 评论 -
java性能调优的基本思路
java性能调优的基本知识 http://wenku.baidu.com/view/0b5e5b08581b6bd97f19eab3.htmlWeb应用影响性能的集中体现在:网络、CPU、内存、IO、数据库、缓存 应用系统的性能测试通常有如下过程: 1) 分析性能需求:了解系统性能需求,建立性能测试数据模型,分析性能需求,确定合理性能目标; 2) 制定原创 2011-11-03 19:22:03 · 1226 阅读 · 0 评论 -
线程安全与线程不安全的区别
线程安全就是多线程访问时,采用了加锁机制(如synchronized),当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。<br />线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据<br /><br />查看ArrayList和Vector的源码会发现,其实Vector跟ArrayList基本一样,只是把所有改变列表元素的方法和部分跟位置或变化有关系的查询方法加上了synchro原创 2011-04-26 15:12:00 · 1054 阅读 · 0 评论 -
Session与Cookie区别,Session和Cache的区别
<br />Session 是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。<br /><br />服务器也可以通过URL重写的方转载 2011-04-26 16:36:00 · 961 阅读 · 0 评论 -
HTTP中GET与POST方法的区别
<br />看这个之前,可以先大致看一下我以前的一篇总结(HTTP请求模型和头信息):<br />http://www.51testing.com/index.php?uid-225738-action-viewspace-itemid-216200<br /><br />做Web测试相关工作,了解一下HTTP协议规定的8中请求方式中最常用的GET和POST是很有必要的,现简单总结一下吧,也当是自己做个笔记。<br /><br />1.HTTP协议的格式:为了理解两者在传输过程中的不同,转载 2011-04-26 16:16:00 · 1027 阅读 · 0 评论 -
BEA WebLogic平台下J2EE调优攻略(收藏)
作者:zhouhg (dev2dev ID)摘要: 随着近来J2EE软件广泛地应用于各行各业,系统调优也越来越引起软件开发者和应用服务器提供商的重视。而对于最终客户来说,在一个高效、稳定地实现他们的业务需求已经是他们的基本要求。所以J2EE调优显得非常重要,而BEA WebLogic Server是业界领先的应用服务器,BEA WebLogic平台下的J2EE调优也转载 2011-06-11 23:05:00 · 1240 阅读 · 0 评论 -
浅谈Java中的同步的方法和原理
Java的内存模型中Thread会附有自己的堆栈,寄存器,必要时需要和主存即heap之间同步。可以使用Synchornized关键字和Concurrent包中的Lock可以保证线程互斥和可见性。互斥性体现在类锁或者对象锁上,每个对象自身都包含一个监视器,该监视器是一个每次只能被一个线程所获取进入的临界区,可以通过wait和notify来退出和准入临界区。可以看出这是一个生产者-消费转载 2011-06-10 17:13:00 · 1245 阅读 · 0 评论 -
13种提高系统伸缩性的最佳实践
1, 尽可能地使用异步通信.2, 为提供不同服务的硬件引入故障隔离.3, 在多层系统中, 使用Cache.4, 从用户角度监控你的系统性能.5, 使用数据库复制, 降低单点读压力.6, 根据用户和业务的不同, 将应用或数据库分片.7, 减少使用关系型数据库的复杂特性. 尽可能把它当做是一个持久存储设备.8, 以循序渐进的方式升级系统, 先转载 2011-06-10 22:36:00 · 1679 阅读 · 0 评论 -
JVM调优总结(精)
转自:http://pengjiaheng.javaeye.com/blog/518622搜索JVM调优发现的好文,转载共赏 JVM调优总结-序 几年前写过一篇关于JVM调优的文章,前段时间拿出来看了看,又添加了一些东西。突然发现,基础真的很重要。学习的过程是一个由表及里,再由里及表的过程。呵呵,所谓的“温故而知新”。而真正能走完这个轮回的人,也就能称转载 2011-06-06 14:52:00 · 1913 阅读 · 0 评论 -
JConsole手册
一篇Sun官方网站上介绍JConsole使用的文章,前段时间性能测试的时候大概翻译了一下以便学习,今天整理一下发上来,有些地方也不知道怎么翻,就保留了原文,可能还好理解点,呵呵,水平有限,翻的不好,大家多多包涵。JConsole毕竟是JDK自带的东西,功能虽然没有一些商业软件那么强大,但是稳定性好,在大压力情况下也不会发生什么问题。而且,提供了相对全面的系统监控功能,还是值得一用的。转载 2011-06-06 16:13:00 · 1369 阅读 · 0 评论 -
SPRING中BEAN的作用域?
<br />文章分类:Java编程<br /> <br /> <br />SpringBean作用域介绍:<br /><br />singleton:Spring Ioc容器只会创建该Bean的唯一实例,所有的请求和引用都只使用这个实例<br />Property: 每次请求都创建一个新实例<br />request: 在一次Http请求中,容器会返回该Bean的同一个实例,而对于不同的用户请求,会返回不同的实例。需要注意的是,该作用域仅在基于Web的SpringApplica原创 2011-02-17 16:30:00 · 1169 阅读 · 0 评论 -
大型高并发高负载web应用系统架构-缓存架构策略
<br />目前在网站的架构构成中普遍使用到缓存来提供WEB应用的性能,由于网站规模的不同,分别存在如下几种类型的缓存架构。<br />(1)单机缓存<br />(2)简单分布式缓存<br />(3)使用复制方式的缓存集群<br />(4)使用散列方式的缓存集群<br />(5)高性能高、可靠的缓存集群<br />下面对于上述几种缓存策略的实际应用的适用情况以及优缺点进行详细分析,当然并没有一个缓存的教条存在,有的只是参考案例,对于具体的应用来讲要具体分析。<br /> <br />(1)单机缓存<br转载 2011-02-17 16:57:00 · 837 阅读 · 0 评论 -
系统架构设计应考虑的问题
<br />本文从程序的运行时结构和源代码的组织结构两个方面探讨了系统构架设计应考虑的各种因素,列举了系统构架设计文档应考虑的一些问题。<br /><br /> 一、与构架有关的几个基本概念:<br /> <br /> 1、模块(module):一组完成指定功能的语句,包括:输入、输出、逻辑处理功能、内部信息、运行环境(与功能对应但不是一对一关系)。<br /> <br /> 2、组件(component):系统中相当重要的、几乎是独立的可替换部分,它在原创 2011-02-17 17:25:00 · 3807 阅读 · 0 评论 -
负载均衡算法大全
负载均衡的发展基础就是负载均衡算法。那么针对不同的服务器我们也会采用不同的负载均衡算法,因为他们所具备的和要求的功能各不相同。那么我们现在就来详细了解一下这方面的知识。希望能让大家从中得到需要的东西。服务器负载均衡算法有很多(持续性的和非持续性的),包括轮循算法、最少连接算法、响原创 2011-07-13 18:17:23 · 1187 阅读 · 0 评论