1.一个生产者和一个消费者。
存在资源竞争情况:1).生产者和消费者同时访问fuilt store,当时fuilt store库存为0时,生产者生产一个产品,但未修改库存数量时,消费者这时访问fuilt store发现库存数量为0,无法购买产品;当fuilt store库存为100时,消费者购买一个产品后,未来得及修改库存数量,生产者这时访问fuilt store发现库存满了,不在生产产品。 ...
分类:
其他好文 时间:
2015-03-14 21:49:30
阅读次数:
131
synchronized、lock和Atomic的区别:synchronized:synchronized是在JVM层面上实现的,不但可以通过一些监控工具监控synchronized的锁定,而且在代码执行时出现异常,JVM会自动释放锁定;在资源竞争不是很激烈的情况下,偶尔会有同步的情形下,synch...
分类:
编程语言 时间:
2015-02-15 14:53:32
阅读次数:
149
创建过多的线程会增加操作系统资源占用,并且还要处理资源要求和潜在的占用冲突。并且使用了多线程之后将使代码的执行流程和资源竞争情况变得复杂,稍不留心就会产生bug。与使用单个线程相比,使用线程池的优点如下:1.缩短应用程序响应时间。因为在线程池中有线程的线程处于等待分配任务状态,无需创建线程2.不必管...
分类:
编程语言 时间:
2015-02-11 14:19:13
阅读次数:
198
之前对SVN不熟悉,一碰到冲突就怕得要死,不知道应该怎么处理。今天必须要正视这个问题,研究一下。一、冲突 SVN非常智能,它不像VSS那样,一个人在改的时候必须以独占的方式签出文件,导致其他人不能够修改。而是允许多个人同时修改一个文件。这就大大减少了资源竞争的问题,之前用VSS经常要问同事:"...
分类:
其他好文 时间:
2014-11-28 21:15:53
阅读次数:
209
解决共享资源竞争
一个不正确的访问资源示例
考虑下面的例子,其中一个任务产生偶数,而其他任务消费这些数字。这里,消费者任务的唯一工作就是检查偶数的有效性。
我们先定义一个偶数生成器的抽象父类。
public abstract class IntGenerator {
private volatile boolean canceled = false;...
分类:
其他好文 时间:
2014-10-29 21:48:09
阅读次数:
252
在看《Cplusplus Concurrency in Action Practical Multithreading》。记录一下学习过程,这是第三章开始部分,谈什么事资源竞争(race condition)以及有哪些方法来避免。...
分类:
其他好文 时间:
2014-10-13 14:00:09
阅读次数:
184
共享资源一般是以对象的形式存在的内存片段,但也可能是文件,输入\输出端口,或者打印机。要控制对共享资源的访问,的先把它包装进一个对象。然后把所有要访问这个资源的方法标记为synchronized。如果某个人物处...
分类:
其他好文 时间:
2014-10-06 03:29:29
阅读次数:
238
概念
研究重点
从资源管理角度分类的5大管理:处理机,文件,存储,设备,作业。
知识概览
(点我查看大图)
纵横比较
1 简单区别一下几个管理部分。
从资源管理部分分的5大类。所以主要区别还是要看它们各自负责的资源。
处理机管理主要研究诸进程之间的并发特性,以及进程之间相互合作与资源竞争...
分类:
其他好文 时间:
2014-09-27 18:14:00
阅读次数:
144
通常情况下,建立索引是加快查询速度的有效手段。但索引不是万能的,靠索引并不能实现对所有数据的快速存取。事实上,如果索引策略和数据检索需求严重不符的话,建立索引反而会降低查询性能。因此在实际使用当中,应该充分考虑到索引的开销,包括磁盘空间的开销及处理开销(如资源竞争和加锁)。例如,如果数据频繁的更新或...
分类:
其他好文 时间:
2014-09-11 20:47:12
阅读次数:
185
cache fusion . grd . drm . gcs . ges
cache fusion
1.RAC是一个数据库运行在多个实例上,通过DLM(Distributed Lock Management):分布式锁管理器 来解决并发问题,RAC各个节点间的共享资源,为了保证每个节点访问数据的一致性,所以需要使用DLM来协调各个实例间的资源竞争访问。 这个D...
分类:
其他好文 时间:
2014-08-19 19:07:45
阅读次数:
334