muduo木铎学习(一)

作者原文:https://blog.csdn.net/Solstice/article/details/5848547#_Toc17667

相关的名词解释:

1.一个基于 Reactor 模式的 C++ 网络库
Reactor 模式:反应器设计模式,处理并发服务请求,并将请求提交到一个或
者多个服务处理程序的事件设计模式。当客户端请求抵达后,服务处理程序使用多路分配策略,
由一个非阻塞的线程来接收所有的请求,然后派发这些请求至相关的工作线程进行处理。
(用单线程做多线程的事)

2. non-trivial templates
Trivial(平凡)和Non-Trivial(不平凡)是对于class(类)的或者类中的四个函数而言的:
1.构造函数
2.拷贝构造函数
3.赋值函数
4.析构函数
Non-Trivial如果上面四种函数满足以下三点任意一项或一项以上:
1.有基类
2.显式(explict)定义了以上四种函数一种或以上
3.类里有非静态非POD的数据成员
那么该类就是Non-Trivial(不平凡)有意义的,所以有意义(Non-Trivial)的函数都有一些“多余”的操作,和系统自动创建的默认缺省函数有些差别。而有意义(Non-Trivial)的类则是含有Non-Trivial的函数。

3.IA32 
Intel Architecture 32bit英特尔32位体系架构
4.FreeBSD
一种类UNIX操作系统,内部结构和系统API上和UNIX有很大的兼容性。
5.Darwin
苹果电脑于2000年所释出的一个开放原始码操作系统。Darwin 是MacOSX 操作环境的操作系统成份

6.I/O模式
-- 阻塞 I/O(blocking IO)
-- 非阻塞 I/O(nonblocking IO)
-- I/O 多路复用( IO multiplexing)
-- 信号驱动 I/O( signal driven IO)
-- 异步 I/O(asynchronous IO)
7.IO multiplexing有三种复用方式
select()
poll() IO多路复用
epoll IO多路复用
参考:https://blog.csdn.net/davidsguo008/article/details/73556811

8.基于对象和面向对象的区别
只有完全具有封装、继承、多态三大特点的才能够叫做面向对象,否则即使设计中蕴含了一些对象的概念,也顶多称为基于对象。
通常基于对象是使用对象,意味着它们有像C++的结构加函数这样的对象,然而这只是到达面向对象语言的一部分,停留在把函数捆绑在结构内部的语言是基于对象的。但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象,也就是说基于对象一般没有继承的特点。没有了继承的概念也就无从谈论多态。现在的很多流行技术都是基于对象的,它们使用一些封装好的对象,调用对象的方法,设置对象的属性。但是它们无法让程序员派生新对象类型。他们只能使用现有对象的方法和属性。所以当你判断一个新的技术是否是面向对象的时候,通常可以使用后两个特性来加以判断。例如:C++是面向对象的,而VB只是基于对象的。
ADT(Abstract Data Type)是指一个数学模型以及定义在该模型上的一组操作。ADT包括数据数据元素,数据关系以及相关的操作。

头文件分类:白色用户可见,灰色不可见
muduo木铎学习(一)_第1张图片

9.non-trivial有用的
面向对象与基于对象:
library和framework的区别:
library中类相对比较独立,编写时需要编写一些“胶水代码”来粘合
framework是能够运用于特定应用领域的,不需要编写过多的“胶水代码”来粘合
重要区别:框架提供用户注册的一些回调函数,使得框架能够调用我们所编写的回调函数,这就使得控制反转了。

.cc文件是Linux/Unix下为C++源文件的默认扩展名,与.cpp(windows下)一个意思

用GCC/G++在 Linux/Unix下可以打开和编译。用一般的记事本就可以打开和编辑。

 

面向对象/基于对象

基于对象的效率稍高一点点

你可能感兴趣的:(C/C++)