![](https://img-blog.csdnimg.cn/20191013181727597.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式,逻辑问题
。
不要停止思考-jcn
向往美好生活
展开
-
读者与写者问题
读者写者问题描述的是这么一种情况:对象在多个线程(或者进程)之间共享,其中一些线程只会读数据,另外一些线程只会写数据。为了保证写入和读取的正确性,我们需要保证,只要有线程在写,那么其他线程不能读,否则可能读到写了一半的数据;另外,也不能有两个线程同时写,否则导致数据错乱。当然,多个线程是可以同时读数据。 读者写者问题在计算机领域非常普遍,大家最容易想到的就是数据库,数据库的读写分离也是为了减少因为...原创 2019-10-15 08:35:04 · 468 阅读 · 0 评论 -
生产者与消费者问题
生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了共享固定大小缓冲区的两个线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关...原创 2019-10-15 08:34:20 · 290 阅读 · 0 评论 -
哲学家就餐问题
哲学家就餐问题被用来演示并行计算中多线程同步时产生的问题。 该问题可以用来解释死锁和资源耗尽。 问题描述: 几个哲学家围在一张圆桌,他们就做两件事:吃饭和思考。 条件:吃东西时就停止思考,思考时就停止吃饭。不是1就是2。 条件:每个哲学家之间有一把叉子。 条件:需要两只叉子才能吃饭,且只能使用自己左右两边的叉子。 条件:哲学家只能先左手拿着叉子,等着右边的叉子,或者反过来。 死锁:哲学家进行交谈就...原创 2019-10-15 08:33:48 · 486 阅读 · 0 评论 -
迭代器模式
迭代器模式(java.utiI.Iterator) 了解迭代器对后面要研究的其他容器类尤其是集合有莫大的帮助。 定义:能对容器对象的各个元素进行有序的访问,又不暴露对象的内部表示。 作用:从头到尾遍历容器中各个元素,并将其进行选择。 特征:只能单向移动 / 遍历 官方也给出了明确的表示:集合上的迭代器代替集合框架中枚举,并且与枚举有两个不同点: 1.迭代器比枚举多了一个删除的方法(一般在集合类中优...原创 2019-10-13 20:11:10 · 101 阅读 · 0 评论