![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
杨杨ruyi1927
这个作者很懒,什么都没留下…
展开
-
Design Patterns in Java: Creational
Pattern GroupsCreationalStructuralbehavioralCreationalSingletonBuilderPrototypeFactoryAbstractFactory------------------------Singleton Patternhttp://blog.csdn.net/u012596785/article/details/79464197原创 2018-03-06 21:36:15 · 185 阅读 · 0 评论 -
第八章节 - 线程间通信和信令
线程间通信和信令 - 章节发信号的需要 - 小节发信号的需要线程还没有工作要做需要在操作期间向线程提供额外的数据ack等待并释放互斥体(监视器)实现生产者/消费者模式演示BlockingQueue生产者消费模式 - 小节生产者/消费者模式从一个或多个生产者发送到一个或多个消费者的消息- 消费者使用消息- 生产者发送它消费者代表生产者进行...原创 2019-08-06 22:27:33 · 154 阅读 · 0 评论 -
第七章节 - Liveness问题:防止死锁、生命锁和饥饿
Liveness问题:防止死锁、生命锁和饥饿 - 章节介绍Liveness问题 - 小节互斥锁和滥用三个“活性”问题(影响程序的响应能力)死锁活锁饥饿哲学家和互斥锁每个哲学家就像一根线每个叉就像一个互斥体,保护食物互斥对象可用于受保护的资源- 例如对象、文件、数据库或硬件哲学家的例子与通常使用互斥锁的方式略有不同互斥锁的优缺点优点:- 防止竞态...原创 2019-07-23 21:26:14 · 340 阅读 · 0 评论 -
第六章节 - 理解互斥锁
理解互斥锁 - 章节介绍Mutual Exclusion - Mutexes(互斥锁) - 小节在最后一节…了解了如何安全地共享内存和避免数据争用- 用volatile- 发布不可变对象这是我们唯一的担心吗?竞态条件竞态条件导致:- 不一致的数据- Invariants brokenvolatile不能帮助如果只有一个线程可以编写,那么发布对象将有所帮助...原创 2019-07-18 22:16:54 · 519 阅读 · 0 评论 -
第五章节 - 跨线程共享内存
跨线程共享内存 - 章节介绍跨线程共享内存 - 小节线程间的沟通线程需要共享它们的数据比让值可见更复杂值也必须正确:1> 缓存[读取陈旧值]的问题2> 编译器“欺骗”问题好的设计是关键意识到这一点很重要1> 需要在设计阶段考虑如何共享数据2> 没有计划地编写代码会导致困难Bugs可以是:1> 微妙的2> 很难找到3...原创 2019-07-14 17:40:31 · 769 阅读 · 0 评论 -
Design Patterns in Java: Behavioral
123原创 2018-03-28 23:39:48 · 122 阅读 · 0 评论 -
Design Patterns in Java: Structural
123原创 2018-03-28 23:38:45 · 133 阅读 · 0 评论 -
AbstractFactory Pattern
ConceptsFactory of FactoriesFactory of related objectsCommons InterfaceDefer to SubclassesExamples: DocumentBuilder, Frameworks---------------------------------------------------------------DesignGrou...原创 2018-03-26 20:53:31 · 151 阅读 · 0 评论 -
Factory Method Pattern
ConceptsDoesn't expose instantiation logicDefer to subclassesCommon interfaceSpecified by architecture, implemented by userExamples: Calendar, ResourceBundle, NumberFormat-------------------------...原创 2018-03-10 19:59:45 · 201 阅读 · 0 评论 -
Prototype Pattern
ConceptsAvoids costly creationAvoids subclassingTypically doesn't use "new"Often utilizes an InterfaceUsually implemented with a RegistryExample: java.lang.Object#clone()------------------------------...原创 2018-03-10 17:24:34 · 153 阅读 · 0 评论 -
Builder Pattern
ConceptsHandles complex constructorsLarge number of parametersImmutabilityExamples: StringBuilder, DocumentBuilder, Locale.Builder-----------------------------------------DesignFlexibility over telesc...原创 2018-03-10 15:08:52 · 205 阅读 · 0 评论 -
选择排序
选择排序基本思想:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 int[] array = {12, 10, 11}; int length = 3; int temp = 0; int min = 0; for (int i...转载 2018-03-07 20:48:08 · 98 阅读 · 0 评论 -
Singleton Pattern
ConceptsOnly one instance createdGuarantees control of a resourceLazily loadedExamples: Runtime, Logger, Spring Beans, Graphic Managers---------------------------------DesignClass is responsible for l...原创 2018-03-06 21:36:52 · 189 阅读 · 0 评论 -
第九章节 - 线程池
线程池 - 章节线程池简介 - 小节介绍我们可以实现我们自己的线程池,但是……- 如果异常工作量需要处理怎么办?- 如果线程抛出异常并死亡?- 我们可能需要管理数百个线程介绍线程池为我们做这些,所以我们不需要重新发明轮子- 它更像是一个引擎,但如果需要,我们可以扩展它线程池的API - 小节将任务传递给线程池任务被传递给Thread...原创 2019-08-27 22:21:13 · 95 阅读 · 0 评论