目录
Linux多线程并发服务器编程(线程池、FTP服务器)
随着以互联网、云计算为标志的信息产业的飞速发展,各种app应用遍地开花,在应用客户数达到百万千万级别和数据处理达到海量以后,采用常规的编程方式后端服务器性能会急剧下降。多线程网络编程模型正是为解决高并发问题而打磨的利器。对当前技术潮流,推出了Linux多线程并发服务器编程这门课程。本课程由浅入深,让零基础的学员可以快速掌握linux多线程网络编程技术,同时深入剖析技术背后的实现原理,让学员既知其然又知其所以然,提升学员竞争力,实现更好的职业发展。
1.课程研发环境
开发工具:VI/VIM;
操作系统:Linux Ubuntu 12.04
虚拟机:VMware Workstation 8.0
其他工具:codeblock或者xshell
2.内容简介
本课程从最基础的进程、线程概念讲起逐步深入,通过理论与实践结合的方式,使学员快说掌握linux多线程网络编程技术,并理解技术背后的实现原理。课程详细讲解了网络编程涉及的数据结构、网络协议、编程接口、g++、gdb、makefile编程工具以及netstat、lsof等相关性能调试命令。并通过实例深入剖析并发服务器程序的开发流程、架构设计、运行原理、性能调优以及异步I/O模型、线程池、多线程并发控制、线程间通信等关键技术。课程共分四个部分,第一部分是linux网络编程基础理论介绍,该部分讲解了linux多线程网络编程用到的基本理论知识;第二部分为基本网络编程,介绍了linux编程基本工具使用,重点介绍了TCP套接字编程和UDP套接字编程;第三部分是高级网络编程,主要介绍了套接字选项、多种IO模型以及并发服务器用到的线程池技术;第四部分为项目案例,讲解了FTP并发服务器程序的实现。
高风老师:研究生学历,高级工程师,信息系统项目管理师,主要研究方向为大规模数据处理,高性能、分布式中间件系统,海量数据存储系统。2010年主持开发《房产信息管理系统》;2011年主持开发《信息智能发布系统》;2013年参与设计研发我国大型调度自动化软件,该项目获国家科技进步二等奖;2014年参与研发中石油油气管道调度系统,负责该软件数据库中间件的设计与开发,该项目获得中国石油集团公司科技进步奖。共发表学术论文6篇(其中EI检索论文4篇),申请专利3项,曾参《电力系统消息总线接口规范》、《电力系统数据库通用接口规范》等国家标准的编写。
第一部分:网络编程理论基础
第一讲:进程的引入及定义
第二讲:进程的特征及状态
第三讲:进程的调度
第四讲:线程的引入及定义
第五讲:线程的分类
第六讲:线程的互斥
第七讲:线程的同步
第八讲:线程同步与互斥案例分析(1)
第九讲:线程同步与互斥案例分析(2)
第十讲:多线程编程:linux线程库介绍
第十一讲:多线程编程:linux线程库函数(1)
第十二讲:多线程编程:linux线程库函数(2)
第十三讲:多线程编:linux线程库函数(3)
第十四讲:多线程编程:linux线程库函数(4)
第十五讲:常见数据结构:数据类型介绍
第十六讲:常见数据结构:基本数据结构(1)
第十七讲:常见数据结构:基本数据结构(2)
第十八讲:常见数据结构:STL介绍(1)
第十九讲:常见数据结构:STL介绍(2)
第二十讲:OSI网络模型与TCP/IP模型
第二十一讲:TCP协议与UDP协议
第二部分:基本网络编程:
第二十二讲:Linux常用命令(1)
第二十三讲:Linux常用命令(2)
第二十四讲:VIM用法介绍(1)
第二十五讲:VIM用法介绍(2)
第二十六讲:g++及makefile用法介绍(1)
第二十七讲:g++及makefile用法介绍(2)
第二十八讲:g++及makefile用法介绍(3)
第二十九讲:socket网络编程简介(1)
第三十讲:socket网络编程简介(2)
第三十一讲:TCP套接字基本网络编程(1)
第三十二讲:TCP套接字基本网络编程(2)
第三十三讲:TCP套接字基本网络编程(3)
第三十四讲:TCP套接字基本网络编程(4)
第三十五讲:TCP套接字基本网络编程(5)
第三十六讲:UDP套接字基本网络编程(1)
第三十七讲:UDP套接字基本网络编程(2)
第三十八讲:UDP套接字基本网络编程(3)
第三部分:高级网络编程初探
第三十九讲:套接字选项(1)
第四十讲:套接字选项(2)
第四十一讲:套接字选项(3)
第四十二讲:IO模型(1)
第四十三讲:IO模型(2)
第四十四讲:IO模型(3)
第四十五讲:Linux系统日志
第四十六讲:线程池技术(1)
第四十七讲:线程池技术(2)
第四十八讲:线程池技术(3)
第四十九讲:线程池技术(4)
第四部分项目案例:
第五十讲:并发服务器编程(1)
第五十一讲:并发服务器编程(2)
第五十二讲:并发服务器编程(3)
第五十三讲:并发服务器编程(4)
目标一. 掌握进程和线程的基本概念,理解进程的特征、状态转化、调度以及线程的分类、互斥、同步
目标二. 掌握linux线程libpthread的用法及原理。
目标三. 理解OSI网络模型与TCP/IP模型
目标四. 学会使用linux系统中的grep、ps、top、lsof常用命令,掌握vim、g++及makefile等开发、编译工具的用法。
目标五. 深入理解SOCKET网络通信的内部原理、掌握TCP和UDP基本的网络编程方法。
目标六. 掌握套接字选项使用方法,深入理解并学会使用select函数。
目标七. 深入理解线程池技术,能够自己编写线程池。
目标八:通过FTP并发服务器项目深入理解并发服务器模型,能够自己设计并开发简单的并发服务器程序。
亮点一、即讲方法又讲原理,由浅入深。即照顾到基础学员,又照顾到有一定经验的学员,讲解过程中留有学生思考的时间。
亮点二、课程绝大多数代码均是一行一行手工敲入,手把手一步步带领学员从入门到精通。
亮点三、通过实践案例深入分析,是学员学习的更快、理解的更透彻。
1.课程针对人群
有一定的计算机网络、C/C++语言基础;有一定的Linux环境编程基础;有志于从事Linux 网络编程学生及开发人员
2.我该怎么学,如何才能学好这门课程,给些建议。
2.1、时间上的安排建议
本课程共53讲,如果您时间上充分,建议每天学习2讲课程,不要急于学完,要理解课程的内容。
2.2、学习要求
如果您没有基础,建议还是中规中矩的按照课程进度一点一点仔细观看学习,并一定要把看完的视频中的代码自己手敲一遍,以加深理解和记忆
如果您有基础,可不必按步就搬进行,可以拿你感兴趣的部分去学习,但一定要注意实践,并学会举一反三
2.3、讲师建议
1.最好看完视频之后,抛开视频,独立自己去把上课中的示例写一遍,看自己是否理解,如果不正确,可以回过头看再看下视频,如果反复,达到真正理解和熟练掌握的目的。
2.对于项目实战部分,一定要自己亲自动手做一遍,不要满足听完就OK了
3. 建议一般听视频,一般拿个纸和笔,做一些记录和笔记,这是一种非常好的学习习惯。
4. 一定不要过于依赖视频,要学会看API和使用百度,学会思考,学会举一反三
5. 最后祝您学有所成
课程是属于某个特定的专业技术,掌握该技术后,你可以从事以下职位的相关工作
1.linux后台服务开发工程师
2.大数据开发工程师
3.基础软件开发工程师