zoukankan      html  css  js  c++  java
  • 多线程设计模式简介

    设计模式

    设计模式(Design Patten)是软件设计中给定背景(Context)下普遍存在的问题一般性可复用的解决方案,这个定义可能有点抽象,但我们可以先了解一下设计模式的具体意义。

    设计模式为软件人员之间阐述和沟通设计方案提供了共用的词汇。开发团队中,软件的设计必然涉及设计方案的讨论和沟通。一方面,负责设计的人员之间需要进行方案的沟通,另一方面,最终负责落实设计方案的人员也需要理解设计方案,这当然也涉及相应的阐述和沟通。而设计模式为开发人员之间阐述和沟通设计方案提供一个统一的基础,即大家都能理解且理解一致的词汇。这种词汇在软件设计过程中所起的作用,正如其他专业术语如继承、多态等我们在工作中所起的作用一样。比如团队成员在讨论一个关于如何扩展我们手头上没有源码的java类的问题时,有人提出“我们新建一个类,该类继承自XX类”,此时大家便都明白可以怎么做了。

    设计模式可以作为描述软件架构的一种方式。设计模式构建了开发人员之间阐述和沟通设计方案的词汇,因此它自然可以用来描绘软件的架构。有了设计模式,我们在描述系统架构的时候便可以使用“本模块运用了XX设计模式”之类的语句。

    多线程设计模式简介

    随着CPU的生产工艺从提高CPU的主频率转向多核化,以往那种靠CPU主频率提升所带来的软件的性能提升的“免费午餐”不复存在。这使得多线程编程在充分发挥系统CPU资源以及软件性能方面起到了越来越重要的作用。然而,多线程编程本身又会引入开销和其他问题,如较之简单的单线程顺序编程的复杂性、线程安全问题、死锁、活锁以及上下文切换开销等。多线程设计模式是多线程编程领域的设计模式,它可以帮助我们解决多线程编程中的许多问题。

    • 不使用锁的情况下保证线程安全:不可变对象模式(Immuntable Object)、线程特有存储模式(Thread Specific Storage)、串行线程封闭模式(Serial Thread Confinement)

    • 优雅地停止线程:俩阶段终止模式(Two-phase Termintion)
    • 线程协作:保护性暂挂模式(Guarded Suspension)、(生产者/消费者)模式(Producer-Consumer)
    • 提高并发性、减少等待:承诺模式(Promise)、主动对象模式(Active Object)、流水线模式(Pipeline)
    • 提高响应性:主仆模式(Master-Slave)、(半同步/半异步)模式(Half-sync/Half-async)
    • 减少资源消耗:线程池模式(Thread Pool)、串行线程封闭模式(Serial Thread Confinement)

    有了多线程的设计模式,那开发者在日后的工作中,就可以根据自己的业务需求去选择多线程编程,以上便是我对于多线程模式的简介,要想更多的了解可以参考《多线程编程实战指南》

  • 相关阅读:
    struts总结
    struts的MVC详细实现
    struts的由来
    Hibernate的搭建及使用
    Hibernate简介
    泛型
    eclipse手动添加源码
    beanUtils操作bean的属性
    ref:JAVA之Forward和Redirect的区别
    ref:下一个项目为什么要用 SLF4J
  • 原文地址:https://www.cnblogs.com/javawan/p/6634552.html
Copyright © 2011-2022 走看看