摘要: RUP是Rational公司三位杰出的软件工程大师Grady Booch,Ivar Jacobson,James Rumbaugh提出的一个软件工程过程方法。软件开发过程是将一个用户需求转化为软件系统所需要的活动的集合。RUP提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。 统一过程的特点: 1.用例驱动(用例驱动开发过程):用例是能够向用户提供有价值结果的系统中的一种功能,通过建立用例模型确定需求。基于用例模型,开发人员可以创建一系列实现这些用例的设计和实现模型。开发人员还可以审查每个后续建立的模型是否与用例模型一... 阅读全文
posted @ 2014-01-03 11:25 qiuhuilu 阅读(4185) 评论(0) 推荐(0) 编辑
摘要: 一、JAVA运行时数据区域:JAVA中的运行时内存区域有的随着虚拟机进程的启动而存在,有的区域则是依赖用户线程的启动和结束而建立和销毁的。包括以下的几个区域。 图. JAVA虚拟机运行时数据区 1.程序计数器:线程私有的内存。作用是当前线程所执行的字节码的行号指示器。多线程是通过线程轮流切换并分配处理器执行时间的方式实现,通过程序计数器为线程切换后能恢复到正确的执行位置。每条线程都需要有一个独立的程序计数器,各线程之间的计数器互不影响,独立存储。 2.JAVA虚拟机栈:线程私有的内存。作用是描述JAVA方法执行的内存模型,每个方法被执行... 阅读全文
posted @ 2013-12-04 10:03 qiuhuilu 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 一、通过sleep方法睡眠 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。该线程不丢失任何监视器的所属权。二、线程优先级 线程具有优先级,范围为1-10。 MAX_PRIORITY线程可以具有的最高优先级。int类型,值为10. MIN_PRIORITY线程可以具有的最低优先级。int类型,值为1. NORM_PRIORITY分配给线程的默认优先级。int类型,值为5. 可以通过setPriority()设置线程的优先级。三、yield方法让出cpu yield方法线程高风亮节让出CPU一次。四、停止线程的方法 stop()方法已经被弃用,原因是不太安全。API文档中给... 阅读全文
posted @ 2013-11-24 18:05 qiuhuilu 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 生产者消费者问题是一个典型的线程同步问题。生产者生产商品放到容器中,容器有一定的容量(只能顺序放,先放后拿),消费者消费商品,当容器满了后,生产者等待,当容器为空时,消费者等待。当生产者将商品放入容器后,通知消费者;当消费者拿走商品后,通知生产者。二、解决方案 对容器资源加锁,当取得锁后,才能对互斥资源进行操作。public class ProducerConsumerTest { public static void main(String []args){ Container con = new Container(); Prod... 阅读全文
posted @ 2013-11-23 14:39 qiuhuilu 阅读(600) 评论(0) 推荐(0) 编辑
摘要: 哲学家就餐问题是1965年由Dijkstra提出的一种线程同步的问题。问题描述:一圆桌前坐着5位哲学家,两个人中间有一只筷子,桌子中央有面条。哲学家思考问题,当饿了的时候拿起左右两只筷子吃饭,必须拿到两只筷子才能吃饭。上述问题会产生死锁的情况,当5个哲学家都拿起自己右手边的筷子,准备拿左手边的筷子时产生死锁现象。解决办法: 1、添加一个服务生,只有当经过服务生同意之后才能拿筷子,服务生负责避免死锁发生。 2、每个哲学家必须确定自己左右手的筷子都可用的时候,才能同时拿起两只筷子进餐,吃完之后同时放下两只筷子。 3、规定每个哲学家拿筷子时必须拿序号小的那只,这样最后一位未拿到筷子的哲学家只剩... 阅读全文
posted @ 2013-11-22 21:04 qiuhuilu 阅读(13976) 评论(1) 推荐(2) 编辑
摘要: 一、文档数据模型 文档是一组属性名和属性的集合。相较于关系数据库复杂的规范化,面向文档的数据模型很容易以聚合的形式来表示数据。文档采用无Schema的形式,这种做法带来了一定的优势:首先,由应用程序,而非数据库来保证数据结构;其次,无Schema的模型允许用真正可变属性来表示数据。二、即时查询 即时查询:无需预先定义系统接受的查询类型。关系型数据库必备的性质,文档数据库提供了类似SQL查询的功能。但是,如Key-Value数据库不能实现即时查询功能。三、二级索引 通常采用B树实现类似RDBMS的索引,对查询进行优化。四、复制 MongoDB采用副本集(replica set)的拓扑结构... 阅读全文
posted @ 2013-11-22 11:14 qiuhuilu 阅读(5902) 评论(1) 推荐(0) 编辑
摘要: 一、线程同步介绍 同步:就是协同步调,按照预定的先后顺序执行。比如:你说完我再说。 线程同步:访问同一个共享资源的时候多个线程能够保证数据的安全性、一致性。二、JAVA中实现线程同步的方法 实现进程同步的方法是在共享竞争的资源上加锁,保证对资源的独占性。JAVA中通过关键字synchronized实现同步。看下面的例子package cn.edu.sdust.AsyTest;public class TestAsyn implements Runnable { Timer timer = new Timer(); /** * @param args *... 阅读全文
posted @ 2013-11-21 21:14 qiuhuilu 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 一、进程与线程 线程是指进程内的一个执行单元(可理解为程序内的一条执行路径),也是进程内的可调度实体。 线程与进程的区别: 1.线程是进程的一个执行单元,一个进程可以拥有多个线程,线程之间共享进程的地址空间。而进程有自己的独立的地址空间。 2.进程是资源分配的基本单元,进程内的线程共享进程的资源。 3.线程是处理器调度的基本单元,而进程不是。 4.二者均可以并发执行。 二、JAVA实现线程的方式 1.实现Runnable接口,重写run()方法 2.继承Thread类,重写run()方法 注:启动线程一定使用Thread类的start()方法,而不是方法调用run()。... 阅读全文
posted @ 2013-11-20 21:17 qiuhuilu 阅读(430) 评论(0) 推荐(0) 编辑
摘要: windows下MongoDB安装及自动启动 阅读全文
posted @ 2013-11-19 15:43 qiuhuilu 阅读(862) 评论(0) 推荐(0) 编辑