java
杨杨ruyi1927
这个作者很懒,什么都没留下…
展开
-
Design Patterns in Java: Creational
Pattern GroupsCreationalStructuralbehavioralCreationalSingletonBuilderPrototypeFactoryAbstractFactory------------------------Singleton Patternhttp://blog.csdn.net/u012596785/article/details/79464197原创 2018-03-06 21:36:15 · 189 阅读 · 0 评论 -
第八章节 - 线程间通信和信令
线程间通信和信令 - 章节 发信号的需要 - 小节 发信号的需要 线程还没有工作要做 需要在操作期间向线程提供额外的数据 ack 等待并释放互斥体(监视器) 实现生产者/消费者模式 演示BlockingQueue 生产者消费模式 - 小节 生产者/消费者模式 从一个或多个生产者发送到一个或多个消费者的消息 - 消费者使用消息 - 生产者发送它 消费者代表生产者进行...原创 2019-08-06 22:27:33 · 156 阅读 · 0 评论 -
第七章节 - Liveness问题:防止死锁、生命锁和饥饿
Liveness问题:防止死锁、生命锁和饥饿 - 章节 介绍Liveness问题 - 小节 互斥锁和滥用 三个“活性”问题(影响程序的响应能力) 死锁 活锁 饥饿 哲学家和互斥锁 每个哲学家就像一根线 每个叉就像一个互斥体,保护食物 互斥对象可用于受保护的资源 - 例如对象、文件、数据库或硬件 哲学家的例子与通常使用互斥锁的方式略有不同 互斥锁的优缺点 优点: - 防止竞态...原创 2019-07-23 21:26:14 · 347 阅读 · 0 评论 -
第六章节 - 理解互斥锁
理解互斥锁 - 章节 介绍Mutual Exclusion - Mutexes(互斥锁) - 小节 在最后一节… 了解了如何安全地共享内存和避免数据争用 - 用volatile - 发布不可变对象 这是我们唯一的担心吗? 竞态条件 竞态条件导致: - 不一致的数据 - Invariants broken volatile不能帮助 如果只有一个线程可以编写,那么发布对象将有所帮助 ...原创 2019-07-18 22:16:54 · 521 阅读 · 0 评论 -
第五章节 - 跨线程共享内存
跨线程共享内存 - 章节 介绍跨线程共享内存 - 小节 线程间的沟通 线程需要共享它们的数据 比让值可见更复杂 值也必须正确: 1> 缓存[读取陈旧值]的问题 2> 编译器“欺骗”问题 好的设计是关键 意识到这一点很重要 1> 需要在设计阶段考虑如何共享数据 2> 没有计划地编写代码会导致困难 Bugs可以是: 1> 微妙的 2> 很难找到 3...原创 2019-07-14 17:40:31 · 772 阅读 · 0 评论 -
Design Patterns in Java: Behavioral
123原创 2018-03-28 23:39:48 · 123 阅读 · 0 评论 -
Design Patterns in Java: Structural
123原创 2018-03-28 23:38:45 · 134 阅读 · 0 评论 -
AbstractFactory Pattern
ConceptsFactory of FactoriesFactory of related objectsCommons InterfaceDefer to SubclassesExamples: DocumentBuilder, Frameworks---------------------------------------------------------------DesignGrou...原创 2018-03-26 20:53:31 · 154 阅读 · 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 · 207 阅读 · 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 · 161 阅读 · 0 评论 -
Builder Pattern
ConceptsHandles complex constructorsLarge number of parametersImmutabilityExamples: StringBuilder, DocumentBuilder, Locale.Builder-----------------------------------------DesignFlexibility over telesc...原创 2018-03-10 15:08:52 · 213 阅读 · 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 · 200 阅读 · 0 评论 -
第九章节 - 线程池
线程池 - 章节 线程池简介 - 小节 介绍 我们可以实现我们自己的线程池,但是…… - 如果异常工作量需要处理怎么办? - 如果线程抛出异常并死亡? - 我们可能需要管理数百个线程 介绍 线程池为我们做这些,所以我们不需要重新发明轮子 - 它更像是一个引擎,但如果需要,我们可以扩展它 线程池的API - 小节 将任务传递给线程池 任务被传递给Thread...原创 2019-08-27 22:21:13 · 95 阅读 · 0 评论