zoukankan      html  css  js  c++  java
  • Twisted介绍

    Twisted诞生于2000年初,作者为Glyph,目的是为了开发网络游戏。

    Twisted的历史

      Glyph开始采用Java多线程,来开发Twisted Reality,结果多线程使得开发变得复杂,难以扩展。

    出现了死锁,加锁出错,缓存污染等问题。Glyph发现自己打开了问题的大门,他需要自己实现一个网络

    引擎,而这与他想开发的游戏一样有趣。

      而Java的NIO是在2002年才出现的。

    Twisted具有的新功能

    1、使用基于事件驱动的编程模型,而不是多线程模型。

    2、跨平台:为主流操作系统平台暴露出的事件通知系统提供统一的接口。

    3、“内置电池”的能力:提供流行的应用层协议实现,因此Twisted马上就可为开发人员所用。

    4、符合RFC规范,已经通过健壮的测试套件证明了其一致性。

    5、能很容易的配合多个网络协议一起使用。

    6、可扩展。

    Twisted架构概览

    事件驱动:

    在事件驱动版本的程序中,3个任务交错执行,但仍然在一个单独的线程控制中。当处理I/O或者其他昂贵的操作时,注册一个回调到事件循环中,然后当I/O操作完成时继续执行。回调描述了该如何处理某个事件。事件循环轮询所有的事件,当事件到来时将它们分配给等待处理事件的回调函数。这种方式让程序尽可能的得以执行而不需要用到额外的线程。事件驱动型程序比多线程程序更容易推断出行为,因为程序员不需要关心线程安全问题。

    reactor模式

    reactor架构模式使得事件驱动程序来分离和调度多个客户端请求。

    Twisted 关键模块

    1、Deferred

    2、Transports

    3、Protocols

    4、Applications:Service、Application、配置管理(TAC文件)、命令行工具twisd

    5、Pb

    引用:

    1、http://www.aosabook.org/en/twisted.html

  • 相关阅读:
    人月神话第二遍(总)--读书笔记
    Python实现人脸检测(个人、多人、视频)
    软件体系架构的质量属性
    jdk1.8 使用的是什么垃圾回收器?
    【深入理解Java虚拟机】垃圾回收
    P2167 [SDOI2009]Bill的挑战
    二项式反演基础
    P5039 [SHOI2010]最小生成树
    快速莫比乌斯/沃尔什变换 (FMT/FWT)
    莫比乌斯反演
  • 原文地址:https://www.cnblogs.com/zhizouxiao/p/3777393.html
Copyright © 2011-2022 走看看