这里整理了一份Python开发的学习路线,可按照这份大纲来安排学习计划~
第一阶段:专业核心基础
阶段目标:
1 熟练掌握Python的开发环境与编程核心知识
2 熟练运用Python面向对象知识进行程序开发
3 对Python的核心库和组件有深入理解
4 熟练应用SQL语句进行数据库常用 *** 作
5 熟练运用Linux *** 作系统命令及环境配置
6 熟练使用MySQL,掌握数据库高级 *** 作
7 能综合运用所学知识完成项目
知识点:
Python编程基础、Python面向对象、Python高级进阶、MySQL数据库、Linux *** 作系统。
1、Python编程基础,语法规则,函数与参数,数据类型,模块与包,文件IO,培养扎实的Python编程基本功,同时对Python核心对象和库的编程有熟练的运用。
2、Python面向对象,核心对象,异常处理,多线程,网络编程,深入理解面向对象编程,异常处理机制,多线程原理,网络协议知识,并熟练运用于项目中。
3、类的原理,MetaClass,下划线的特殊方法,递归,魔术方法,反射,迭代器,装饰器,UnitTest,Mock。深入理解面向对象底层原理,掌握Python开发高级进阶技术,理解单元测试技术。
4、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,PDBC,深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为Python后台开发打下坚实基础。
5、Linux安装配置,文件目录 *** 作,VI命令,管理,用户与权限,环境配置,Docker,Shell编程Linux作为一个主流的服务器 *** 作系统,是每一个开发工程师必须掌握的重点技术,并且能够熟练运用。
第二阶段:PythonWEB开发
阶段目标:
1 熟练掌握Web前端开发技术,HTML,CSS,JavaScript及前端框架
2 深入理解Web系统中的前后端交互过程与通信协议
3 熟练运用Web前端和Django和Flask等主流框架完成Web系统开发
4 深入理解网络协议,分布式,PDBC,AJAX,JSON等知识
5 能够运用所学知识开发一个MiniWeb框架,掌握框架实现原理
6 使用Web开发框架实现贯穿项目
知识点:
Web前端编程、Web前端高级、Django开发框架、Flask开发框架、Web开发项目实战。
1、Web页面元素,布局,CSS样式,盒模型,JavaScript,JQuery与Bootstrap掌握前端开发技术,掌握JQuery与BootStrap前端开发框架,完成页面布局与美化。
2、前端开发框架Vue,JSON数据,网络通信协议,Web服务器与前端交互熟练使用Vue框架,深入理解>
3、自定义Web开发框架,Django框架的基本使用,Model属性及后端配置,Cookie与Session,模板Templates,ORM数据模型,Redis二级缓存,RESTful,MVC模型掌握Django框架常用API,整合前端技术,开发完整的WEB系统和框架。
4、Flask安装配置,App对象的初始化和配置,视图函数的路由,Request对象,Abort函数,自定义错误,视图函数的返回值,Flask上下文和请求钩子,模板,数据库扩展包Flask-Sqlalchemy,数据库迁移扩展包Flask-Migrate,邮件扩展包Flask-Mail。掌握Flask框架的常用API,与Django框架的异同,并能独立开发完整的WEB系统开发。
第三阶段:爬虫与数据分析
阶段目标:
1 熟练掌握爬虫运行原理及常见网络抓包工具使用,能够对>
2 熟练掌握各种常见的网页结构解析库对抓取结果进行解析和提取
3 熟练掌握各种常见反爬机制及应对策略,能够针对常见的反爬措施进行处理
4 熟练使用商业爬虫框架Scrapy编写大型网络爬虫进行分布式内容爬取
5 熟练掌握数据分析相关概念及工作流程
6 熟练掌握主流数据分析工具Numpy、Pandas和Matplotlib的使用
7 熟练掌握数据清洗、整理、格式转换、数据分析报告编写
8 能够综合利用爬虫爬取豆瓣网评论数据并完成数据分析全流程项目实战
知识点:
网络爬虫开发、数据分析之Numpy、数据分析之Pandas。
1、爬虫页面爬取原理、爬取流程、页面解析工具LXML,Beautifulfoup,正则表达式,代理池编写和架构、常见反爬措施及解决方案、爬虫框架结构、商业爬虫框架Scrapy,基于对爬虫爬取原理、网站数据爬取流程及网络协议的分析和了解,掌握网页解析工具的使用,能够灵活应对大部分网站的反爬策略,具备独立完成爬虫框架的编写能力和熟练应用大型商业爬虫框架编写分布式爬虫的能力。
2、Numpy中的ndarray数据结构特点、numpy所支持的数据类型、自带的数组创建方法、算术运算符、矩阵积、自增和自减、通用函数和聚合函数、切片索引、ndarray的向量化和广播机制,熟悉数据分析三大利器之一Numpy的常见使用,熟悉ndarray数据结构的特点和常见 *** 作,掌握针对不同维度的ndarray数组的分片、索引、矩阵运算等 *** 作。
3、Pandas里面的三大数据结构,包括Dataframe、Series和Index对象的基本概念和使用,索引对象的更换及删除索引、算术和数据对齐方法,数据清洗和数据规整、结构转换,熟悉数据分析三大利器之一Pandas的常见使用,熟悉Pandas中三大数据对象的使用方法,能够使用Pandas完成数据分析中最重要的数据清洗、格式转换和数据规整工作、Pandas对文件的读取和 *** 作方法。
4、matplotlib三层结构体系、各种常见图表类型折线图、柱状图、堆积柱状图、饼图的绘制、图例、文本、标线的添加、可视化文件的保存,熟悉数据分析三大利器之一Matplotlib的常见使用,熟悉Matplotlib的三层结构,能够熟练使用Matplotlib绘制各种常见的数据分析图表。能够综合利用课程中所讲的各种数据分析和可视化工具完成股票市场数据分析和预测、共享单车用户群里数据分析、全球幸福指数数据分析等项目的全程实战。
第四阶段:机器学习与人工智能
阶段目标:
1 理解机器学习相关的基本概念及系统处理流程
2 能够熟练应用各种常见的机器学习模型解决监督学习和非监督学习训练和测试问题,解决回归、分类问题
3 熟练掌握常见的分类算法和回归算法模型,如KNN、决策树、随机森林、K-Means等
4 掌握卷积神经网络对图像识别、自然语言识别问题的处理方式,熟悉深度学习框架TF里面的张量、会话、梯度优化模型等
5 掌握深度学习卷积神经网络运行机制,能够自定义卷积层、池化层、FC层完成图像识别、手写字体识别、验证码识别等常规深度学习实战项目
知识点:
1、机器学习常见算法、sklearn数据集的使用、字典特征抽取、文本特征抽取、归一化、标准化、数据主成分分析PCA、KNN算法、决策树模型、随机森林、线性回归及逻辑回归模型和算法。熟悉机器学习相关基础概念,熟练掌握机器学习基本工作流程,熟悉特征工程、能够使用各种常见机器学习算法模型解决分类、回归、聚类等问题。
2、Tensorflow相关的基本概念,TF数据流图、会话、张量、tensorboard可视化、张量修改、TF文件读取、tensorflow playround使用、神经网络结构、卷积计算、激活函数计算、池化层设计,掌握机器学习和深度学习之前的区别和练习,熟练掌握深度学习基本工作流程,熟练掌握神经网络的结构层次及特点,掌握张量、图结构、OP对象等的使用,熟悉输入层、卷积层、池化层和全连接层的设计,完成验证码识别、图像识别、手写输入识别等常见深度学习项目全程实战。
F:\学习考研\电子图书\电子宝库├—215例题解析自动控制原理_0
├—21世纪信息与通信技术教程 多媒体通信_0
├—21世纪信息与通信技术教程 数字电路与FPGA_0
├—21世纪信息与通信技术教程 数字语音:语音编码实用教程_0
├—21世纪信息与通信技术教程 现代通信基础与技术_0
├—21世纪大学计算机应用系列教材 JAVA与面向对象程序设计导论_0
├—21世纪大学计算机系列教材 C语言大学实用教程_0
├—21世纪网络平台大学计算机系列教材 离散数学_0
├—21世纪网络平台大学计算机系列教材 网络平台大学计算机信息技术_0
├—21世纪高等学校应用型规划教材 EDA实用技术教程_0
├—21世纪高等学校应用型规划教材 Protel 99SE实用技术教程_0
├—21世纪高等学校应用型规划教材 电子交易与支付_0
├—21世纪高等学校应用型规划教材 网络及电子商务安全_0
├—21世纪高等学校教材 概率论与数理统计 (第二版)_0
├—21世纪高等学校教材 线性代数 (第二版)_0
├—21世纪高等学校电子信息类专业规划教材 Visual Basic程序设计基础教程_0
├—21世纪高等学校电子信息类专业规划教材 Visual Basic程序设计教程_0
├—21世纪高等学校电子信息类专业规划教材 多媒体课件制作实训教程_0
├—21世纪高等学校电子信息类专业规划教材 网络安全技术基础_0
├—21世纪高等学校电子信息类专业规划教材 网络安全概论_0
├—21世纪高等学校电子信息类专业规划教材 网络系统集成技术_0
├—21世纪高等学校电子信息类专业规划教材 计算机信息管理基础_0
├—21世纪高等学校电子信息类专业规划教材 计算机硬件技术基础_0
├—21世纪高等学校电子信息类教材 数字微波通信系统_0
├—21世纪高等学校规划教材 高等数学_0
├—21世纪高等学校计算机基础教育系列教材 数据库应用与程序设计实验指导_0
├—21世纪高等学校计算机基础教育系列教材 数据库应用与程序设计教程_0
├—21世纪高等学校计算机科学与技术教材 面向对象C++程序设计_0
├—21世纪高等院校教材 电磁场与电磁波_0
├—21世纪高等院校教材 遥感数字图像处理_0
├—21世纪高等院校数字艺术设计系列教材 数字动画设计艺术_0
├—21世纪高等院校电气信息类系列教材 单片机原理与应用_0
├—21世纪高等院校规划教材 DSP原理及应用_0
├—21世纪高等院校规划教材 数据通信与计算机网络_0
├—21世纪高等院校计算机教材系列 C语言程序设计教程_0
├—21世纪高等院校计算机科学与工程系列教材 微型计算机原理与接口技术_0
├—21世纪高等院校计算机科学与技术规划教材 Java程序设计简明教程_0
├—21世纪高等院校计算机科学与技术规划教材 微机原理与接口技术 (80386-Pe_0
├—21世纪高等院校计算机系列教材 Java程序设计基础_0
├—21世纪高等院校计算机系列教材 Java程序设计实验与实训_0
├—21世纪高等院校计算机系列教材 管理信息系统_0
├—21世纪高等院校计算机系列教材 编程逻辑与结构化程序设计 (第三版)_0
├—21世纪高职高专信息技术教材 数据库原理及应用教程_0
├—21高等学校电子信息类专业规划教材 计算机引论_0
├—301例题解析电工电路 (中册)_0
├—372例题解析电工电路 (上册)_0
├—488例题解析电工电路 (下册)_0
├—8051单片机彻底研究 基础篇_0
├—8051单片机彻底研究 实习篇_0
├—8051单片机数据传输接口扩展技术与应用实例_0
├—Adobe 数字艺术中心 InDesign CS标准教材_0
├—Advanced C++ (中文版)_0
├—APSL参数化有限元分析技术及其应用实例_0
├—ASP+SQL Server网络应用系统开发与实例_0
├—ASP信息系统设计与开发实列_0
├—Authorware 6_5多媒体制作基础教程_0
├—BHDL实例剖析_0
├—BIOS、注册表与硬盘终极解析_0
├—Blackfin系列DSP原理与系统设计_0
├—C#Builder编程起跑_0
├—C#大学教程_0
├—C#应用程序开发标准教程_0
├—C#程序设计培训教程_0
├—C#面向对象程序设计:台版_0
├—C++ Templates中文版_0
├—C++Builder 6实用编程100例_0
├—C++同构化对象程序设计原理_0
├—C++多范型设计_0
├—C++大学自学教程(第7版)_0
├—C++捷径教程 第3版_0
├—C++程序设计_0
├—C++程序设计实验指导与实训_0
├—C++编程惯用法——高级程序员常用方法和技巧_0
├—C++网络编程 卷2 基于ACE和框架的系统化复用_0
├—C++面向对象程序设计 (第四版)_0
├—CAXA电子图板XP实用教程_0
├—CCNA学习指南 (中文版) (640-801)_0
├—CDMA 无线通信原理_0
├—CPLD_FPGA可编程逻辑器件应用与开发_0
├—C_0
├—C语言与MATLAB接口:编程与实例_0
├—C语言程序设计2_0
├—C语言程序设计3_0
├—C语言程序设计_0
├—C语言程序设计导学_0
├—C语言精彩编程百例_0
├—Delphi 7_0程序设计教程_0
├—Delphi 7应用教程_0
├—Delphi 7数据库开发教程_0
├—Delphi 7数据库高级教程_0
├—Delphi 7程序设计_0
├—Delphi 7课程设计案例精编_0
├—Delphi 程序设计技能百练_0
├—DELPHI 经典游戏程序设计40例_0
├—Delphi串口通信技术与工程实践_0
├—Delphi数据库开发实例解析_0
├—Delphi数据库编程_0
├—Delphi数据库高级实例导航_0
├—Delphi源代码分析_0
├—Delphi程序设计_0
├—Delphi程序设计实训_0
├—Delphi程序设计教程_0
├—Delphi精要2_0
├—Delphi精要_0
├—DSP 通信工程技术应用_0
├—DSP信号处理技术应用_0
├—DSP技术及应用_0
├—DSP控制系统的设计与实现_0
├—DSP算法设计与系统方案_0
├—DSP系统设计与实践_0
├—DSP芯片的原理与开发应用 (第3版)_0
├—DSP集成开发环境:CCS及DSP_BIOS的原理与应用_0
├—DWDM技术原理与应用_0
├—EDA与数字系统设计_0
├—EDA工程实践_0
├—Enterprise Java Bean程序设计实例详解_0
├—Excel 2003中文版入门与提高_0
├—IBM PC 80X86汇编语言程序设计_0
├—IBM信息集成技术原理及应用_0
├—ICSA密码学指南_0
├—IEEE 802_11无线局域网_0
├—IEEE1394接口技术_0
├—Intel微处理器结构、编程与接口 (第六版)_0
├—Intel汇编语言程序设计 第四版_0
├—IP宽带通信网络技术_0
├—J2EE 应用与实践技巧:JAVA设计模式、自动化与性能_0
├—J2EE网络编程标准教程_0
├—J2METM技术手册_0
├—J2ME开发大全_0
├—Java 2学习指南——Sun Certified Programmer_0
├—Java 2实用教程_0
├—Java 2程序设计技能百练_0
├—Java 2简明教程_0
├—Java Web服务开发_0
├—Java 国际认证(SCJP)典型试题1000例_0
├—Java 模式_0
├—Java 游戏编程_0
├—Java 课程设计案例精编_0
├—Java与CORBA客户 服务器编程 第二版_0
├—Java信息系统设计与开发实例_0
├—Java基础教程_0
├—Java实用系统开发指南_0
├—Java实用编程100例_0
├—Java并发编程:设计原则与模式_0
├—Java手机_PDA程序设计入门_0
├—Java数值方法_0
├—Java数据对象_0
├—Java数据库高级教程_0
├—Java数据结构和算法 (第二版)_0
├—Java极限编程_0
├—JAVA程序设计2_0
├—Java程序设计3_0
├—Java程序设计_0
├—Java程序设计基础 (第3版)_0
├—Java程序设计实战训练_0
├—Java程序设计技巧与开发实例_0
├—Java程序设计教程_0
├—Java程序设计高级主题_0
├—Java算法 (第3版,第1卷)_0
├—Java编程原理:面向工程和科学人员_0
├—JAVA缺陷_0
├—Java网络编程基础_0
├—Java语言程序设计_0
├—Java语言程序设计教程_0
├—Java课程设计_0
├—Java软件开发2_0
├—Java软件开发_0
├—Java项目开发实践_0
├—Java高级实用编程_0
├—Jave 2认证考试学习指南 (第四版) (英文版)_0
├—JBuilder 9_0入门与提高_0
├—JBuilder 9_0程序设计——Java程序员成功之路_0
├—JBuilder精髓_0
├—JSP信息系统设计与开发实例_0
├—MATLAB 6_5及其在信号处理中的应用_0
├—MATLAB 6_5图形图像处理_0
├—MATLAB 7_0实用指南 (上册)_0
├—MATLAB 7_0实用指南 (下册)_0
├—MATLAB M语言高级编程_0
├—Matlab 小波分析工具箱原理与应用_0
├—MATLAB与外部程序接口_0
├—MATLAB仿真技术与应用教程_0
├—MATLAB仿真技术主导实例应用教程_0
├—MATLAB信息工程工具箱技术手册_0
├—MATLAB及其在电路与控制理论中的应用_0
├—Matlab图像处理与应用_0
├—MATLAB图形图像处理应用教程_0
├—MATLAB工具箱应用_0
├—MATLAB应用数学工具箱技术手册_0
├—Matlab接口技术与应用_0
├—MATLAB控制工程工具箱技术手册_0
├—MATLAB数学计算范例教程_0
├—MATLAB有限元分析与应用_0
├—MATLAB电力系统设计与分析_0
├—MATLAB程序设计_0
├—MATLAB符号运算及其应用_0
├—MATLAB自动控制原理习题精解_0
├—MCS-51单片机原理及应用实例_0
├—MCS-51系列单片机原理与接口技术_0
├—MCS-51系列单片机系统及其应用 (第二版)_0
├—Microsoft SQL Server 2000宝典_0
├—OP放大电路设计_0
├—Oracle9i数据库原理与应用教程_0
├—OrCAD电路设计_0
├—PCB电磁兼容技术——设计实践_0
├—PC控制及接口程序设计实例_0
├—PIC 单片机原理与接口技术_0
├—PowerBuilder9_0数据窗口技术_0
├—PowerPCB高速电子电路设计与应用_0
├—Protel 2004电路原理图及PCB设计_0
├—Protel 99 SE印制电路板设计教程_0
├—Protel 99 SE原理图与PCB及仿真_0
├—Protel DXP 电路原理图设计指南_0
├—Protel DXP印制电路板设计指南_0
├—Protel DXP电路原理图与PCB设计_0
├—Protel DXP电路原理图与电路板设计教程_0
├—Protel DXP电路图及电路板设计实用教程_0
├—Protel DXP电路设计与仿真_0
├—Protel DXP电路设计与制版实用教程_0
├—Protel DXP电路设计与应用2_0
├—Protel DXP电路设计入门与应用_0
├—Protel DXP电路设计入门与进阶_0
├—Protel DXP电路设计制版入门与提高_0
├—Protel DXP电路设计标准教程_0
├—PSpice 电路优化程序设计_0
├—PSpice 电路设计实用教程_0
├—PSpice电路原理与实现_0
├—PSpice电路编辑程序设计_0
├—PWM控制与驱动器使用指南及应用电路:单端控制与驱动器部分_0
├—Red Hat Linux安全与优化_0
├—Tanner Pro集成电路设计与布局实战指导_0
├—TMS320C500系列DSP系统设计与开发实例_0
├—TMS320C54x DSP应用程序设计教程_0
├—TMS320LF_LC24系列DSP的CPU与外设_0
├—UML及其建模工具的使用_0
├—UML宝典_0
├—UML工具箱_0
├—USB 接口技术_0
├—Verilog HDL数字设计与综合 (第二版)_0
├—Verilog HDL程序设计教程_0
├—Verlog HDL 综合实用教程_0
├—VHDL与微机接口设计_0
├—VHDL数字系统设计 (第二版)_0
├—VHDL电路设计实用教程_0
├—VHDL电路设计技术_0
├—Visual Basic 6_0实践指导_0
├—Visual Basic 6_0应用编程150例_0
├—Visual Basic 程序设计教程_0
├—Visual Basic6_0数据库开发技术与工程实践_0
├—Visual Basic_NET程序设计实训教程_0
├—Visual Basic程序设计2_0
├—Visual Basic程序设计_0
├—Visual C#_NET程序设计经典_0
├—Visual C++ 6_0应用编程150例_0
├—Visual C++ 6_0数据库开发技术与工程实践_0
├—Visual C++6_0数字图像编码_0
├—Visual C++_MATLAB图像处理与识别实用案例精选_0
├—Visual C++_NET数字图像处理技术与应用_0
├—Visual C++_NET程序设计入门_0
├—Visual C++_NET编程实例_0
├—Visual C++_Turbo C串口通信编程实践_0
├—Visual C++数字图像实用工程案例精选_0
├—Visual C++网络通信程序开发指南_0
├—Visual C++网络通信编程实用案例精选_0
├—Visual FoxPro上机实践指导教程_0
├—Visual FoxPro程序设计教程_0
├—Visual Prolog编程、环境及接口_0
├—VisualC++_NET MFC类库应用详解_0
├—WCDMA技术与系统设计:第三代移动通信系统的无线接入_0
├—WCDMA无线通信技术及演化_0
├—WCDMA移动通信技术_0
├—Win32汇编语言实用教程_0
├—Windows安全性编程_0
├—XML编程实例教程_0
├—·工程数学·复变函数_0
├—《Visual Basic程序设计教程》实验与习题_0
├—《中华人民共和国电子签名法》释义及实用指南_0
├—《汇编语言与微机原理》学习指导与训练_0
├—《集成电子技术基础教程》教学指导书_0
├—三星电子绝处逢生的强悍之道_0
├—三级信息管理技术_0
├—三级信息管理技术:新大纲_0
├—专用集成电路_0
├—世界著名大学核心教材 计算机类 C语言程序设计_0
├—中国半导体行业协会集成电路设计分会推荐教材 集成电路设计与九天EDA工具应用_0
├—中国电子信息产品出口研究报告_2003_0
├—中文 Visual Basic 6_0实例教程_0
├—中文CorelDRAW 11_12时尚创作200例_0
├—中文Visual Basic实例全解教程_0
├—企业商务电子化导论_0看看这里有么 下下来看看 如果需要再买
F:\学习考研\电子图书\电子宝库
├—215例题解析自动控制原理_0
├—21世纪信息与通信技术教程 多媒体通信_0
├—21世纪信息与通信技术教程 数字电路与FPGA_0
├—21世纪信息与通信技术教程 数字语音:语音编码实用教程_0
├—21世纪信息与通信技术教程 现代通信基础与技术_0
├—21世纪大学计算机应用系列教材 JAVA与面向对象程序设计导论_0
├—21世纪大学计算机系列教材 C语言大学实用教程_0
├—21世纪网络平台大学计算机系列教材 离散数学_0
├—21世纪网络平台大学计算机系列教材 网络平台大学计算机信息技术├—21世纪高等学校电子信息类专业规划教材 多媒体课件制作实训教程_0
├—21世纪高等学校电子信息类专业规划教材 网络安全技术基础_0
├—21世纪高等学校电子信息类专业规划教材 网络安全概论_0
├—21世纪高等学校电子信息类专业规划教材 网络系统集成技术_0
├—21世纪高等学校电子信息类专业规划教材 计算机信息管理基础_0
├—21世纪高等学校电子信息类专业规划教材 计算机硬件技术基础_0
├—21世纪高等学校电子信息类教材 数字微波通信系统_0
├—21世纪高等学校规划教材 高等数学_0
├—21世纪高等学校计算机基础教育系列教材 数据库应用与程序设计实验指导_0
├—21世纪高等学校计算机基础教育系列教材 数据库应用与程序设计教程_0
├—21世纪高等学校计算机科学与技术教材 面向对象C++程序设计_0
├—21世纪高等院校教材 电磁场与电磁波_0
├—21世纪高等院校教材 遥感数字图像处理_0
├—21世纪高等院校数字艺术设计系列教材 数字动画设计艺术_0
├—21世纪高等院校电气信息类系列教材 单片机原理与应用_0
├—21世纪高等院校规划教材 DSP原理及应用_0
├—21世纪高等院校规划教材 数据通信与计算机网络_0
├—21世纪高等院校计算机教材系列 C语言程序设计教程_0
├—21世纪高等院校计算机科学与工程系列教材 微型计算机原理与接口技术_0
├—21世纪高等院校计算机科学与技术规划教材 Java程序设计简明教程_0
├—21世纪高等院校计算机科学与技术规划教材 微机原理与接口技术 (80386-Pe_0
├—21世纪高等院校计算机系列教材 Java程序设计基础_0
├—21世纪高等院校计算机系列教材 Java程序设计实验与实训_0
├—21世纪高等院校计算机系列教材 管理信息系统_0
├—21世纪高等院校计算机系列教材 编程逻辑与结构化程序设计 (第三版)_0
├—21世纪高职高专信息技术教材 数据库原理及应用教程_0
├—21高等学校电子信息类专业规划教材 计算机引论_0
├—301例题解析电工电路 (中册)_0
├—372例题解析电工电路 (上册)_0
├—488例题解析电工电路 (下册)_0
├—8051单片机彻底研究 基础篇_0
├—8051单片机彻底研究 实习篇_0
├—8051单片机数据传输接口扩展技术与应用实例_0
├—Adobe 数字艺术中心 InDesign CS标准教材_0
├—Advanced C++ (中文版)_0
├—APSL参数化有限元分析技术及其应用实例_0
├—ASP+SQL Server网络应用系统开发与实例_0
├—ASP信息系统设计与开发实列_0
├—Authorware 6_5多媒体制作基础教程_0
├—BHDL实例剖析_0
├—BIOS、注册表与硬盘终极解析_0
├—Blackfin系列DSP原理与系统设计_0
├—C#Builder编程起跑_0
├—C#大学教程_0
├—C#应用程序开发标准教程_0
├—C#程序设计培训教程_0
├—C#面向对象程序设计:台版_0
├—C++ Templates中文版_0
├—C++Builder 6实用编程100例_0
├—C++同构化对象程序设计原理_0
├—C++多范型设计_0
├—C++大学自学教程(第7版)_0
├—C++捷径教程 第3版_0
├—C++程序设计_0
├—C++程序设计实验指导与实训_0
├—C++编程惯用法——高级程序员常用方法和技巧_0
├—C++网络编程 卷2 基于ACE和框架的系统化复用_0
├—C++面向对象程序设计 (第四版)_0
├—CAXA电子图板XP实用教程_0
├—CCNA学习指南 (中文版) (640-801)_0
├—CDMA 无线通信原理_0
├—CPLD_FPGA可编程逻辑器件应用与开发_0
├—C_0
├—C语言与MATLAB接口:编程与实例_0
├—C语言程序设计2_0
├—C语言程序设计3_0
├—C语言程序设计_0
├—C语言程序设计导学_0
├—C语言精彩编程百例_0
├—Delphi 7_0程序设计教程_0
├—Delphi 7应用教程_0
├—Delphi 7数据库开发教程_0
├—Delphi 7数据库高级教程_0
├—Delphi 7程序设计_0
├—Delphi 7课程设计案例精编_0
├—Delphi 程序设计技能百练_0
├—DELPHI 经典游戏程序设计40例_0
├—Delphi串口通信技术与工程实践_0
├—Delphi数据库开发实例解析_0
├—Delphi数据库编程_0
├—Delphi数据库高级实例导航_0
├—Delphi源代码分析_0
├—Delphi程序设计_0
├—Delphi程序设计实训_0
├—Delphi程序设计教程_0
├—Delphi精要2_0
├—Delphi精要_0
├—DSP 通信工程技术应用_0
├—DSP信号处理技术应用_0
├—DSP技术及应用_0
├—DSP控制系统的设计与实现_0
├—DSP算法设计与系统方案_0
├—DSP系统设计与实践_0
├—DSP芯片的原理与开发应用 (第3版)_0
├—DSP集成开发环境:CCS及DSP_BIOS的原理与应用_0
├—DWDM技术原理与应用_0
├—EDA与数字系统设计_0
├—EDA工程实践_0
├—Enterprise Java Bean程序设计实例详解_0
├—Excel 2003中文版入门与提高_0
├—IBM PC 80X86汇编语言程序设计_0
├—IBM信息集成技术原理及应用_0
├—ICSA密码学指南_0
├—IEEE 802_11无线局域网_0
├—IEEE1394接口技术_0
├—Intel微处理器结构、编程与接口 (第六版)_0
├—Intel汇编语言程序设计 第四版_0
├—IP宽带通信网络技术_0
├—J2EE 应用与实践技巧:JAVA设计模式、自动化与性能_0
├—J2EE网络编程标准教程_0
├—J2METM技术手册_0
├—J2ME开发大全_0
├—Java 2学习指南——Sun Certified Programmer_0
├—Java 2实用教程_0
├—Java 2程序设计技能百练_0
├—Java 2简明教程_0
├—Java Web服务开发_0
├—Java 国际认证(SCJP)典型试题1000例_0
├—Java 模式_0
├—Java 游戏编程_0
├—Java 课程设计案例精编_0
├—Java与CORBA客户 服务器编程 第二版_0
├—Java信息系统设计与开发实例_0
├—Java基础教程_0
├—Java实用系统开发指南_0
├—Java实用编程100例_0
├—Java并发编程:设计原则与模式_0
├—Java手机_PDA程序设计入门_0
├—Java数值方法_0
├—Java数据对象_0
├—Java数据库高级教程_0
├—Java数据结构和算法 (第二版)_0
├—Java极限编程_0
├—JAVA程序设计2_0
├—Java程序设计3_0
├—Java程序设计_0
├—Java程序设计基础 (第3版)_0
├—Java程序设计实战训练_0
├—Java程序设计技巧与开发实例_0
├—Java程序设计教程_0
├—Java程序设计高级主题_0
├—Java算法 (第3版,第1卷)_0
├—Java编程原理:面向工程和科学人员_0
├—JAVA缺陷_0
├—Java网络编程基础_0
├—Java语言程序设计_0
├—Java语言程序设计教程_0
├—Java课程设计_0
├—Java软件开发2_0
├—Java软件开发_0
├—Java项目开发实践_0
├—Java高级实用编程_0
├—Jave 2认证考试学习指南 (第四版) (英文版)_0
├—JBuilder 9_0入门与提高_0
├—JBuilder 9_0程序设计——Java程序员成功之路_0
├—JBuilder精髓_0
├—JSP信息系统设计与开发实例_0
├—MATLAB 6_5及其在信号处理中的应用_0
├—MATLAB 6_5图形图像处理_0
├—MATLAB 7_0实用指南 (上册)_0
├—MATLAB 7_0实用指南 (下册)_0
├—MATLAB M语言高级编程_0
├—Matlab 小波分析工具箱原理与应用_0
├—MATLAB与外部程序接口_0
├—MATLAB仿真技术与应用教程_0
├—MATLAB仿真技术主导实例应用教程_0
├—MATLAB信息工程工具箱技术手册_0
├—MATLAB及其在电路与控制理论中的应用_0
├—Matlab图像处理与应用_0
├—MATLAB图形图像处理应用教程_0
├—MATLAB工具箱应用_0
├—MATLAB应用数学工具箱技术手册_0
├—Matlab接口技术与应用_0
├—MATLAB控制工程工具箱技术手册_0
├—MATLAB数学计算范例教程_0
├—MATLAB有限元分析与应用_0
├—MATLAB电力系统设计与分析_0
├—MATLAB程序设计_0
├—MATLAB符号运算及其应用_0
├—MATLAB自动控制原理习题精解_0
├—MCS-51单片机原理及应用实例_0
├—MCS-51系列单片机原理与接口技术_0
├—MCS-51系列单片机系统及其应用 (第二版)_0
├—Microsoft SQL Server 2000宝典_0
├—OP放大电路设计_0
├—Oracle9i数据库原理与应用教程_0
├—OrCAD电路设计_0
├—PCB电磁兼容技术——设计实践_0
├—PC控制及接口程序设计实例_0
├—PIC 单片机原理与接口技术_0
├—PowerBuilder9_0数据窗口技术_0
├—PowerPCB高速电子电路设计与应用_0
├—Protel 2004电路原理图及PCB设计_0
├—Protel 99 SE印制电路板设计教程_0
├—Protel 99 SE原理图与PCB及仿真_0
├—Protel DXP 电路原理图设计指南_0
├—Protel DXP印制电路板设计指南_0
├—Protel DXP电路原理图与PCB设计_0
├—Protel DXP电路原理图与电路板设计教程_0
├—Protel DXP电路图及电路板设计实用教程_0
├—Protel DXP电路设计与仿真_0
├—Protel DXP电路设计与制版实用教程_0
├—Protel DXP电路设计与应用2_0
├—Protel DXP电路设计入门与应用_0
├—Protel DXP电路设计入门与进阶_0
├—Protel DXP电路设计制版入门与提高_0
├—Protel DXP电路设计标准教程_0
├—PSpice 电路优化程序设计_0
├—PSpice 电路设计实用教程_0
├—PSpice电路原理与实现_0
├—PSpice电路编辑程序设计_0
├—PWM控制与驱动器使用指南及应用电路:单端控制与驱动器部分_0
├—Red Hat Linux安全与优化_0
├—Tanner Pro集成电路设计与布局实战指导_0
├—TMS320C500系列DSP系统设计与开发实例_0
├—TMS320C54x DSP应用程序设计教程_0
├—TMS320LF_LC24系列DSP的CPU与外设_0
├—UML及其建模工具的使用_0
├—UML宝典_0
├—UML工具箱_0
├—USB 接口技术_0
├—Verilog HDL数字设计与综合 (第二版)_0
├—Verilog HDL程序设计教程_0
├—Verlog HDL 综合实用教程_0
├—VHDL与微机接口设计_0
├—VHDL数字系统设计 (第二版)_0
├—VHDL电路设计实用教程_0
├—VHDL电路设计技术_0
├—Visual Basic 6_0实践指导_0
├—Visual Basic 6_0应用编程150例_0
├—Visual Basic 程序设计教程_0
├—Visual Basic6_0数据库开发技术与工程实践_0
├—Visual Basic_NET程序设计实训教程_0
├—Visual Basic程序设计2_0
├—Visual Basic程序设计_0
├—Visual C#_NET程序设计经典_0
├—Visual C++ 6_0应用编程150例_0
├—Visual C++ 6_0数据库开发技术与工程实践_0
├—Visual C++6_0数字图像编码_0
├—Visual C++_MATLAB图像处理与识别实用案例精选_0
├—Visual C++_NET数字图像处理技术与应用_0
├—Visual C++_NET程序设计入门_0
├—Visual C++_NET编程实例_0
├—Visual C++_Turbo C串口通信编程实践_0
├—Visual C++数字图像实用工程案例精选_0
├—Visual C++网络通信程序开发指南_0
├—Visual C++网络通信编程实用案例精选_0
├—Visual FoxPro上机实践指导教程_0
├—Visual FoxPro程序设计教程_0
├—Visual Prolog编程、环境及接口_0
├—VisualC++_NET MFC类库应用详解_0
├—WCDMA技术与系统设计:第三代移动通信系统的无线接入_0
├—WCDMA无线通信技术及演化_0
├—WCDMA移动通信技术_0
├—Win32汇编语言实用教程_0
├—Windows安全性编程_0
├—XML编程实例教程_0
├—·工程数学·复变函数_0
├—《Visual Basic程序设计教程》实验与习题_0
├—《中华人民共和国电子签名法》释义及实用指南_0
├—《汇编语言与微机原理》学习指导与训练_0
├—《集成电子技术基础教程》教学指导书_0
├—三星电子绝处逢生的强悍之道_0
├—三级信息管理技术_0
├—三级信息管理技术:新大纲_0
├—专用集成电路_0
├—世界著名大学核心教材 计算机类 C语言程序设计_0
├—中国半导体行业协会集成电路设计分会推荐教材 集成电路设计与九天EDA工具应用_0
├—中国电子信息产品出口研究报告_2003_0
├—中文 Visual Basic 6_0实例教程_0
├—中文CorelDRAW 11_12时尚创作200例_0
├—中文Visual Basic实例全解教程_0
├—企业商务电子化导论_0
├—企业电子商务_0
├—使用UML进行面向对象的项目管理_0
├—例题解析电子电路:数字篇_0
├—例题解析电子电路:模拟篇_0
├—信号、系统与数字信号处理_0
├—信号、系统与数字信号处理学习指导与实践_0
├—信号与系统典型题解2_0
├—信号与系统典型题解_0
├—信号与系统分析2_0
├—信号与系统分析_0
├—信号与系统学习与考研指导2_0
├—信号与系统学习与考研指导_0
├—信号与系统学习指导2_0
├—信号与系统学习指导3_0
├—信号与系统学习指导4_0
├—信号与系统学习指导_0
├—信号与系统教程2_0
├—信号与系统教程_0
├—信号与系统课程辅导_0
├—信号与线性系统分析 (第二版)_0
├—信号分析与处理_0
├—信号处理中的数学变换和估计方法_0
├—信号处理原理与应用_0
├—信号处理滤波器设计_0
├—信息与传播_0
├—信息与计算科学专业系列教材 数字信号处理_0
├—信息与通信工程研究生系列教材 信息论与编码_0
├—信息与通信工程研究生系列教材 图论及其应用_0
├—信息光学理论与应用_0
├—信息化与中国经济跨越式发展_0
├—信息化工程原理与应用_0
├—信息安全原理与应用 (第三版)_0
├—信息安全教学基础_0
├—信息安全策略与机制_0
├—信息技术与电子政务 (通用版)——信息时代的电子政府_0
├—信息技术与课程整合的理论与方法_0
├—信息技术及其应用_0
├—信息技术基础_0
├—信息技术基础教程_0
├—信息技术基础教程实验及上机指导_0
├—信息技术法 (第二版)_0
├—信息技术的商业价值_0
├—信息方法概论_0
├—信息时代的企业人力资源管理_0
├—信息时代的管理信息系统 (原书第四版)_0
├—信息检索与利用_0
├—信息理论与编码2_0
├—信息理论与编码_0
├—信息竞争论_0
├—信息管理与信息系统专业规划教材 管理信息系统_0
├—信息管理论_0
├—信息系统分析与设计教程_0
├—信息系统升级与整合:策略·方法·技巧_0
├—信息系统安全管理_0
├—信息系统集成技术 (第二版)_0
├—信息系统项目管理导论_0
├—信息经济学_0
├—信息经济学与信息管理_0
├—信息经济学引论:激励与合约 (第二版)_0
├—信息经济论_0
├—信息网络传播权研究_0
├—信息网络经济的管理与调控:美国“新经济周期”研究_0
├—信息论与编码理论 第二版_0
├—信息资源管理_0
├—信息隐藏与数字水印_0
├—信息隐藏技术实验教程_0
├—先进PID控制MATLAB仿真 (第二版)_0
├—光信息网络_0
├—光信息通信技术实用手册_0
├—光纤通信_0
├—光纤通信原理与技术_0
├—光纤通信技术_0
├—光纤通信系统原理与实验教程_0
├—光纤通信系统及其应用_0
├—光纤通信:通信用光纤、器件和系统_0
├—全光光纤通信网_0
├—全国信息技术人才培养工程指定培训教材 平面设计基础_0
├—全国大学生电子设计竞赛获奖作品汇编:第一届-第五届_0
├—全国计算机技术与软件专业技术资格(水平)考试·程序员分册_0
├—全国计算机技术与软件专业技术资格(水平)考试·网络工程师分册_0
├—全国计算机技术与软件专业技术资格(水平)考试·网络管理员分册_0
├—全国计算机技术与软件专业技术资格(水平)考试·软件设计师分册_0
├—全国计算机等级考试三级教程 信息管理技术_0
├—全国计算机等级考试三级模拟题精选与详解 信息管理技术_0
├—全国计算机等级考试三级模拟题解 信息管理技术_0
├—全国计算机等级考试三级辅导 信息管理技术_0
├—全国计算机等级考试二级教程:基础知识和Java语言程序设计_0
├—全国计算机等级考试二级模拟题解:基础知识和Java语言程序设计_0
├—全国计算机等级考试应试辅导 QBASIC语言(二级)难点、错点解析_0
├—全国计算机等级考试教程 信息管理技术 (三级) (2004修订版)_0
├—全国计算机等级考试考点分析、题解与模拟 (三级信息管理技术)_0
├—全国计算机等级考试(三级信息管理技术)一册通_0
├—公司信息战略与管理:教程与案例 (原书第6版)_0
├—内容产业论:数字新媒体的核心_0
├—制造业信息化与信息编码_0
├—动态网页设计与电子商务_0
├—北京市高等教育精品教材立项项目 实用电子电路基础_0
├—半导体分立元器件集成电路装调_0
├—单片开关电源:应用电路·电磁兼容·PCB布线_0
├—单片微型计算机原理、应用及接口技术 (第2版)_0
├—单片机典型模块设计实例导航_0
├—单片机原理与实用技术_0
├—单片机原理与应用2_0
├—单片机原理与应用_0
├—单片机原理及其接口技术 (第二版)_0
├—单片机原理及其接口技术 (第二版)_0
├—单片机原理及其接口技术学习辅导与实践教程_0
├—单片机原理及应用_0
├—单片机原理及接口技术2_0
├—单片机原理及接口技术3_0
├—单片机原理及接口技术_0
├—单片机实用技术_0
├—单片机嵌入式应用的线开发方法_0
├—单片机应用技术_0
├—单片机应用系统设计与产品开发_0
├—单片机控制工程实践技术_0
├—卫星通信系统_0
├—四维时空逻辑_0
├—国外电子与通信教材系列 信号与系统 (第二版)_0
├—国外经典教材 C++数据结构与程序设计_0
├—国外经典计算机科学教材 逻辑与计算机设计基础 (第三版)_0
├—国外著名高等院校信息科学与技术优秀教材 C算法 第一卷,基础、数据结构、排序和搜_0
├—国外著名高等院校信息科学与技术优秀教材 密码学概论 (中文版)_0
├—国外著名高等院校信息科学与技术优秀教材 面向对象编程 C++和Java 比较教程_0
├—国外计算机科学教材系列 现代编译器的Java实现 (第二版)_0
├—国外计算机科学经典教材 JAVA 基础教程:从问题分析到程序设计_0
├—国外计算机科学经典教材 数据结构 Java 语言描述 (第二版)_0
├—国外高校电子信息类优秀教材 (翻译版) 压缩视频通信_0
├—国家信息化技术培训指定教材 硬件维护工程师标准培训教程_0
├—国防科工委十五规划教材 网络与信息安全_0
├—国际电子商务培训认证专用教材 国际电子商务程序设计教程_0
├—国际电子商务概论_0
├—图像信息压缩_0
├—图像数字记录_0
├—图像编码基础和小波压缩技术——原理、算法和标准_0
├—图表细说电子元器件_0
├—图解晶体管实用电路_0
├—图解电工电子基础_0
├—基于Java的计算机图形学_0
├—基于MCS-51单片机的嵌入式系统设计_0
├—声光信号处理及应用_0
├—复变函数与拉普拉斯变换习题指导_0
├—复变函数与积分变换学习指导_0
├—复变函数论与运算微积_0
├—大型软件体系结构:使用UML实践指南_0
├—大学信息技术基础教程_0
├—大学生素质教育系列教材 复变函数学习指导_0
├—大学英语六级词汇背诵词典
├—大学计算机信息技术学习指导_0
├—大学计算机基础教育规划教材 Visual Basic NET程序设计_0
├—大容量数据存储系统编码_0
├—天津市高等学校计算机基础课程规划教材 C程序设计教程 (第二版)_0
├—奇思异想编程序 Delphi篇_0
├—学习指导与题典:离散数学_0
├—学习指导与题典:计算机网络与通信_0
├—完整的数字设计_0
├—实用化工计算机模拟:MATLAB在化学工程中的应用_0
├—实用射频技术_0
├—实用电动机控制电路200例_0
├—实用电工与电子技术问答_0
├—实用电工电路图集_0
├—实用电路基础_0
├—实用软件测试过程_0
├—实验电子技术_0
├—宽带移动通信中的先进信道编码技术_0
├—宽带通信_0
├—宽带通信网与组网技术_0
├—小波分析信息传输基础_0
├—小灵通(PAS)个人通信接入系统 (修订版)_0
├—嵌入式微处理器模拟接口设计 (第二版)_0
├—嵌入式软件测试_0
├—工程电磁场数值计算_0
├—差错控制编码_0
├—常用充电器电路与应用_0
├—应用程序设计编制(Delphi 平台)Delphi 6_0_7_0职业技能培训教程_0
├—建筑物电子信息系统防雷技术设计手册_0
├—建筑电气常用设备模块化控制电路图集_0
├—建筑通信与网络技术_0
├—开发专家之Sun ONE J2EE技术参考手册_0
├—彩色图像工程_0
├—彩色电视机单元电路应用与维修手册_0
├—微型计算机原理与接口技术3_0
├—微型计算机原理与接口技术_0
├—微型计算机硬件技术教程-原理·汇编·接口及体系结构_0
├—微处理机原理与接口技术_0
├—微控制器原理及接口技术实验教程_0
├—微机原理与接口技术2_0
├—微机原理与接口技术4_0
├—微机原理与接口技术_0
├—微机原理与接口技术综合实验教程_0
├—微机原理及接口技术实验教程_0
├—微机原理及软硬件接口技术_0
├—微机接口技术500问_0
├—微波固态电路_0
├—微波工程基础_0
├—微波技术2_0
├—微波技术_0
├—微观信息管理_0
├—快速开发信息管理系统:新平台、新方法_0
├—怎样用电脑设计电子线路_0
├—怎样看楼宇常用设备电气控制电路图_0
├—振荡电路的设计与应用_0
├—捉虫历险记——常见C++Bug大围剿_0
├—控制工程与信号处理_0
├—控制系统MATLAB计算机及仿真 (第二版)_0
├— *** 作系统原理Linux篇_0
├—数字万用表检测方法与应用 (世纪新版)_0
├—数字与逻辑电路
├—数字专用集成电路的设计与验证_0
├—数字信号处理2_0
├—数字信号处理3_0
├—数字信号处理_0
├—数字信号处理典型题解及自测试题_0
├—数字信号处理原理及实现_0
├—数字信号处理实践方法 (第2版)_0
├—数字信号处理教程:MATLAB释义与实现_0
├—数字信号处理:系统分析与设计_0
├—数字信号微处理器的原理与开发 (第二版)_0
├—数字制造_0
├—数字化战场_0
├—数字化测量技术与应用_0
├—数字化网络化制造技术_0
├—数字图像处理及应用_0
├—数字城堡_0
├—数字城市建设的理论与策略_0
├—数字媒体:作品观摩与点评_0
├—数字广播电视技术文选_0
├—数字微波通信_0
├—数字技术与著作权:观念、规范与实例_0
├—数字时代的影像制作_0
├—数字时代的电视图像_0
├—数字显示测量仪表_0
├—数字电子技术_0
├—数字电子技术基础 (第四版) 全程辅导_0
├—数字电子技术基础 (第四版) 导教·导学·导考_0
├—数字电子技术基础_0
├—数字电视原理_0
├—数字电视广告_0
├—数字电路与逻辑设计教程2_0
├—数字电路与逻辑设计教程_0
├—数字电路设计完全手册_0
├—数字的美术——CorelDRAW Illustrator艺术插画设计经典案例剖析_0
├—数字签名原理及技术_0
├—数字系统设计:从数字技术基础到ASIC设计的解析_0
├—数字系统逻辑设计
├—数字系统逻辑设计3_0
├—数字系统逻辑设计_0
├—数字视频解决方案:创建、编辑与共享数字视频_0
├—数字设计 (第三版)_0
├—数字通信技术_0
├—数字逻辑
├—数字逻辑2_0
├—数字逻辑_0
├—数字逻辑与VHDL设计_0
├—数字逻辑基础
├—数字逻辑基础_0
├—数字逻辑技术基础_0
├—数字逻辑电路_0
├—数字逻辑电路的ASIC设计2_0
├—数字逻辑电路的ASIC设计_0
├—数字逻辑电路设计
├—数字逻辑电路设计2_0
├—数字逻辑电路设计_0
├—数字逻辑电路设计与实现_0
├—数字逻辑的图形方法2_0
├—数字逻辑的图形方法_0
├—数字集成电路与嵌入式内核系统可测试性设计_0
├—数字集成电路:电路、系统与设计 (第二版)_0
├—数字集群 移动通信系统 (第二版)_0
├—数学物理方法_0
├—数学物理方程及其近似方法_0
├—数据库系统工程师教程_0
├—数据库系统工程师考试大纲_0
├—数据结构(C语言版)导教·导学·导br>这里不光只是考虑并发数的问题,你还得考虑服务器的带宽,内存等情况。视频直播会占用更多的带宽资源,同时更加考验服务器的综合性能。能同时带动百万并发数且能满足其它要求,你需要的是服务器群,而不是单单的一台服务器,参考国内某里云的价格,每年的租金大概至少在200W以上。服务程序最为关键的设计是并发服务模型,当前有以下几种典型的模型:
- 单进程服务,使用非阻塞IO
使用一个进程服务多个客户,通常与客户通信的套接字设置为非阻塞的,阻塞只发生在select()、poll()、epoll_wait()等系统调用上面。这是一种行之有效的单进程状态机式服务方式,已被广泛采用。
缺点是它无法利用SMP(对称多处理器)的优势,除非启动多个进程。此外,它尝试就绪的IO文件描述符后,立即从系统调用返回,这会导致大量的系统调用发生,尤其是在较慢的字节传输时。
select()本身的实现也是有局限的:能打开的文件描述符最多不能超过FD_SETSIZE,很容易耗尽;每次从select()返回的描述符组中扫描就绪的描述符需要时间,如果就绪的描述符在末尾时更是如此(epoll特别彻底修复了这个问题)。
- 多进程服务,使用阻塞IO
也称作 accept/fork 模型,每当有客户连线时产生一个新的进程为之服务。这种方式有时是必要的,比如可以通过 *** 作系统获得良好的内存保护,可以以不同的用户身份运行程序,可以让服务运行在不同的目录下面。但是它的缺点也很明显:进程比较占资源,进程切换开销太大,共享某些信息比较麻烦。Apache 13就使用了这种模型,MaxClients数很容易就可以达到。
- 多线程服务,使用阻塞IO
也称之 accept/pthread_create模型,有新客户来时创建一个服务线程而不是服务进程。这解决了多进程服务的一些问题,比如它占用资源少,信息共享方便。但是麻烦在于线程仍有可能消耗光,线程切换也需要开销。
- 混合服务方式
所谓的混合服务方式,以打破服务方和客户方之间严格的1:1关系。基本做法是:
新客户到来时创建新的工作线程,当该工作线程检测到网络IO会有延迟时停止处理过程,返回给Server一个延迟处理状态,同时告诉 Server被延迟的文件描述符,延迟超时时间。Server会在合适的时候返回工作线程继续处理。注意这里的工作线程不是通过 pthread_create()创建的,而是被包装在专门用于处理延迟工作的函数里。
这里还有一个问题,工作线程如何检测网络IO会有延迟?方法有很多,比如设置较短的超时时间调用poll(),或者甚至使用非阻塞IO。如果是套接字,可以设置SO_RCVTIMEO和SO_SNDTIMEO选项,这样更有效率。
除了延迟线程,Server还应提供了未完成线程的支持。
如有有特别耗费时间的 *** 作,你可以在完成部分工作后停止处理,返回给Server一个未完成状态。这样Server会检查工作队列是否有别的线程,如果有则让它们运行,否则让该工作线程继续处理,这可以防止某些线程挨饿。
典型的一个混合服务模型开源实现ServerKit
Serverkit的这些线程支持功能可简化我们的服务程序设计,效率上应该也是有保证的。
2 队列(queue)
ServerKit提供的队列是一个单向链表,队列的存取是原子 *** 作,如果只有一个执行单元建议不要用,因为原子 *** 作的开销较大。
3 堆(heap)
malloc()分配内存有一定的局限,比如在多线程的环境里,需要序列化内存分配 *** 作。ServerKit提供的堆管理函数,可快速分配内存,可有效减少分配内存的序列化 *** 作,堆的大小可动态增长,堆有引用计数,这些特征比较适合多线程环境。目前ServerKit堆的最大局限是分配单元必须是固定大小。
4 日志记录
日志被保存在队列,有一个专门的线程处理队列中的日志记录:它或者调用syslog()写进系统日志,或者通过UDP直接写到远程机器。后者更有效。
5 读写锁
GNU libc也在pthreads库里实现了读写锁,如果定义了__USE_UNIX98就可以使用。不过ServerKit还提供了读写锁互相转换的函数,这使得锁的应用更为d性。比如拥有读锁的若干个线程对同一个hash表进行检索,其中一个线程检索到了数据,此时需要修改它,一种办法是获取写锁,但这会导致释放读锁和获取写锁之间存在时间窗,另一种办法是使用ServerKit提供的函数把读锁转换成写锁,无疑这种方式更有效率。
除了以上这些功能,ServerKit还提供了数据库连接池的管理(当前只支持MySQL)和序列化(Sequences),如感兴趣可参见相关的API文档。
二、ServerKit服务模块编写
ServerKit由3部分组成:server程序,负责加载服务模块、解析配置文件、建立数据库连接池;libserver,动态链接库,提供所有功能的库支持,包括server本身也是调用这个库写的;API,编程接口,你编写的服务模块和ServerKit框架进行对话的接口。
ServerKit需要libConfuse解析配置文件,所以出了安装ServerKit,还需要安装libConfuse。关于libConfuse可参考 >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)