`
文章列表
  其实如果从应用的有状态和无状态两个分类去看,这些分布式技术都是分别提升有态应用和无态应用的性能和可扩展性Scalable。   在应用架构设计的三个类型中,我也谈到了:并发是解决有态应用;并行是解决无态应用。   而集群和网格计算属于一种并发计算,主要解决有态应用;而云计算则是解决有态和无态两种。   过去我们都是围绕数据库编程,企业应用大部分都是数据库系统,数据库为核心的系统大部分是有状态应用,因为数据库保存的是数据,这个数据大部分是结果状态数据,比如交易后的数量和金额,发票的数量和金额,单据的状态等等。   企业中数据能够使用传统数据库装载存储,说明其数据量不是很大,但 ...
很久以前下载的资料,但下载后都没有看过,今天整理硬盘,认真读一遍,发现是个好文,不敢说对自身有多大的提升,但起码理清了我之前的很多困惑,其中最重要的是架构的方法论,总结的不错,另外对企业信息系统的理解很到位。   大型企业信息系统的架构设计-SD2C-2009.pdf

【转】多线程

    博客分类:
  • JAVA
多线程线程:是指进程中的一个执行流程。线程与进程的区别:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享同一块内存和系统资源。如何创建一个线程?创建线程有两种方式,如下:1、 扩展java.lang.Thread类2、 实现Runnable接口Thread类代表线程类,它的两个最主要的方法是:run()——包含线程运行时所执行的代码Start()——用于启动线程一个线程只能被启动一次。第二次启动时将会抛出java.lang.IllegalThreadExcetpion异常线程间状态的转换(如图示)新建状态:用new语句创建的线程对象 ...
  导读:对于程序员来说,知道堆空间,设置堆空间,处理堆空间的outOfMemoryError错误,分析heap dump是非常重要的。文中介绍了Java堆的学习教程以及Java堆内存(heap memory)的十个要点。 文章内容如下: 我刚开始学习Java编程时,可不知道什么是堆内存或堆空间(heap space),甚至根本不管对象创建时都放在哪里去了。正式了写一些程序后,经常会遇到java.lang.outOfMemoryError等错误,我才开始关注堆内存。 对大多数程序员都经历过这样的过程,因为学习一种语言是非常容易来的,但是学习基础是非常难的,因为没有什么特定的流程让你学习编 ...
从2012年1月8日开始,到今天已经有30天了。每当烟瘾来的感觉就是:抽一根不会死,抽一根影响不大之类的想法。这30天下来,天天折磨我,幸好有大家的支持,特别要感谢老婆,不然我是坚持不下去的。既然挺过去了,那就准备戒一辈子烟,以此为证。   本人从2007年开始抽烟,那时候正在读大二,跟着周边宿舍的同学一起抽烟,一起打游戏,那日子过得很开心啊。到现在算算也有5年的烟龄吧。戒烟前,平均一天一包,最多抽过一天一包半吧,基本上都是五叶神或者软经典。   想想当初染上抽烟的恶习的原因既然是想尝试戒烟的滋味,因为那时候长辈们很多都抽烟,我劝他们戒烟,他们一致都说戒烟难,加上那时候有点叛逆心理吧,于 ...
算法特点: 1.分治法设计 2.节省内存 3.非常实用 算法过程: 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。   一趟快速排序的算法是:   1)设置两个变量I、J,排序开始的时候:I=0,J=N-1;   2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0];   3)从J开始向前搜索,即由后开始向前搜索(J=J ...
分治法概念: 分治法:将原问题分成n个规模较小而结构与原问题相似的子问题;递归地解这些子问题,然后合并其结果就得到原问题的解。 分治模式在每一层递归上都有三个步骤: 第一步:将原问题分解成一系列子问题;(分解) 第二部:递归地解各子问题。若子问题足够小,则直接求解;(解决) 第三部:将子问题的结果合并成原问题的解;(合并) 分治法算法分析: 当一个算法中含有对自身的递归调用时,其运行时间可用一个递归方程来表述,分治算法中的递归式是基于基本模式中的三个步骤的。设T(n)为在规模n下问题的运行时间。如果n足够小,例如有n<c(c为常量),则得到它的直径解的时间为常量,写作thet ...

java与osgi入门篇

    博客分类:
  • JAVA
今天同学问起来OSGI的问题,我之前没接触过,所以搜索了一下,觉得有必要写下来,不为别的,就为了加深印象,学习之,防止忘记。 第一步,了解OSGI,上网查了下概念(ctrl+v): OSGi亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。OSGi容器已有多家开源实现,比如Knoflerfish、Equinox和Apache的Felix。您可以通过这些容器,把您的应用程序劈分为多个模块单元,这样,您就可以更容易地管理这些模块单元之间的交叉依赖关系。OSGi规范和Servlet规范及EJB规范类似,该规范定义了两种对象,一是容器对外提供的服务对象,另一个是容器和您的应用 ...
    回顾这一年比较印象深刻的一些事情: 1.由于去年(2010)年表现突出,公司给我了优秀员工奖,奖金2000元,还不错,暗暗开心,哈哈,公司一共四个人获得此奖,这是一个能力的肯定,同时也升职为高级工程师,我也相 ...
  一、如何进行算法分析 算法分析指对一个算法需要的资源进行预测,其分析包括对一个算法的空间复杂度分析和时间复杂度分析。而随着硬件技术的飞速发展和成本的降低,我们更加关注算法在时间上的表现。 比较直观的做法是通过算法执行的时间来度量一个算法的时间上的效率。但这与执行算法的硬件和运行时的情境关系很大,不同机器、不同状态下的同一算法的运行时间都可能不同,所以这种算法是不科学的。 一个算法所需的时间应当是随着其输入规模增长的,而输入规模与特定具体问题有关。对大多数问题来说其最自然的度量就是输入中的元素个数。 算法的运行时间是指在特定输入时所执行的基本操作数。我们可以得到关于一个关于输入规模n ...
  算法简介:       算法分析是关于计算机性能和资源利用的理论研究。在程序设计方面,个人认为比性能更重要的有正确性,简洁,可维护性,成本(时间成本,资金成本等),健壮性,特性,功能性,安全性,用户友好性等。 但关心性能主要因为: 1.性能直接决定着软件开发的可行还是不可行,例如,对于实时的需求,程序不够快,表示着不可行,如果占用太多内存,也只能说不可行,所以算法总是处于解决问题的最前沿。 2.算法是一种描述程序行为的语言,计算机科学家尼克劳斯-沃思曾著过一本著名的书《数据结构十算法= 程序》,可见算法在计算机科学界与计算机应用界的地位。 那么算法在程序设计中扮演的角色,打个比方 ...
古时候,人们用牛来拉重物,当一头牛拉不动一根圆木的时候,他们不曾想过培育个头更大的牛。同样,我们也不需要尝试更大的计算机,而是应该开发更多的计算系统。                                                                                           ---------格蕾斯·霍伯 首先在了解Hadoop之前,先来看看以下数据:据IDC估计2006年“数字全球”项目的数据总量为0.18ZB,并且预测到2011年这个数字将达到1.8ZB,为2006年的10倍。1ZB相当于10的21次方字节的数据,或相当于100 ...
hashCode方法的作用: 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的 ...
11月16日下午消息,由新浪微博(http://t.sina.com.cn)主办的中国首届微博开发者大会在北京举行,这是国内微博行业的首场技术盛宴。作为国内微博市场的绝对领军者,新浪微博将在此次大会上公布一系列针对开发者的扶持政策,以 ...
什么是端口、端口详解  在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。我们这里将要介绍的就是逻辑意义上的端口。 查看端口   在Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令:   依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“n ...
Global site tag (gtag.js) - Google Analytics