摘要: 哲学家就餐问题是1965年由Dijkstra提出的一种线程同步的问题。问题描述:一圆桌前坐着5位哲学家,两个人中间有一只筷子,桌子中央有面条。哲学家思考问题,当饿了的时候拿起左右两只筷子吃饭,必须拿到两只筷子才能吃饭。上述问题会产生死锁的情况,当5个哲学家都拿起自己右手边的筷子,准备拿左手边的筷子时产生死锁现象。解决办法: 1、添加一个服务生,只有当经过服务生同意之后才能拿筷子,服务生负责避免死锁发生。 2、每个哲学家必须确定自己左右手的筷子都可用的时候,才能同时拿起两只筷子进餐,吃完之后同时放下两只筷子。 3、规定每个哲学家拿筷子时必须拿序号小的那只,这样最后一位未拿到筷子的哲学家只剩... 阅读全文
posted @ 2013-11-22 21:04 qiuhuilu 阅读(14046) 评论(1) 推荐(2) 编辑
摘要: 一、文档数据模型 文档是一组属性名和属性的集合。相较于关系数据库复杂的规范化,面向文档的数据模型很容易以聚合的形式来表示数据。文档采用无Schema的形式,这种做法带来了一定的优势:首先,由应用程序,而非数据库来保证数据结构;其次,无Schema的模型允许用真正可变属性来表示数据。二、即时查询 即时查询:无需预先定义系统接受的查询类型。关系型数据库必备的性质,文档数据库提供了类似SQL查询的功能。但是,如Key-Value数据库不能实现即时查询功能。三、二级索引 通常采用B树实现类似RDBMS的索引,对查询进行优化。四、复制 MongoDB采用副本集(replica set)的拓扑结构... 阅读全文
posted @ 2013-11-22 11:14 qiuhuilu 阅读(5938) 评论(1) 推荐(0) 编辑