Mudo C++网络库第五章学习笔记】的更多相关文章

高效的多线程日志 日志(logging)有两个意思: 诊断日志(diagnostic log), 常用日志库提供日志功能; 交易日志(transaction log), 用于记录状态变更, 通过回放日志可以逐步恢复每一次修改后的状态; 日志通常用于故障诊断和追踪(trace), 也可用于性能分析; 日志通常是分布式系统中事故调查时的唯一线索, 用来追寻蛛丝马迹, 查出原凶; Log Everything All The Time; 关于进程, 日志通常要记录: 收到每条内部消息的ID(还可以包括…
反思C++面向对象与虚函数 C++语言学习可以看<C++ Primer>这本书; 在C++中进行面向对象编程会遇到其他语言中不存在的问题, 其本质原因是C++ class是值语义, 而非对象语义; 朴实的C++设计 实用当头, 朴实为贵, 好用才是王道; C++ 是一门(最)复杂的编程语言, 语言虽复杂, 不代表一定要用复杂的方式来使用它; 不一定非得有基类和派生类的设计才是好设计; 一个类代表一个概念; 让代码保持清晰, 给我们带来了显而易见的好处; 不要因为某个技术流行而去用它, 除非它确…
muduo网络库简介 高级语言(Java, Python等)的Sockects库并没有对Sockects API提供更高层的封装, 直接用它编写程序很容易掉到陷阱中: 网络库的价值还在于能方便地处理并发链接; 网络核心库 muduo是基于Reactor模式的网络库, 其核心是个事件循环EventLoop,用于响应计时器和IO事件; muduo采用基于对象(object-based)而非面向对象(object-oriented)的设计风格; 网络附属库 网络库有一些附属模块, 它们不是核心内容,…
C++多线程系统编程精要 学习多线程编程面临的最大思维方式的转变有两点: 当前线程可能被切换出去, 或者说被抢占(preempt)了; 多线程程序中事件的发生顺序不再有全局统一的先后关系; 当线程被切换出去回来继续执行下一条语句(指令)的时候, 全局数据(包括当前进程在操作系统内核中的状态)可能已经被其他线程修改了; 访问非法地址, 会产生段错误(segfualt); 在没有适当的同步的情况下, 多个CPU上运行的多个线程中的事件发生先后顺序是无法确定的; 在引入适当同步后, 事件之间才有了ha…
多线程服务器的适用场合与常用编程模型 进程间通信与线程同步; 以最简单规范的方式开发功能正确.线程安全的多线程程序; 多线程服务器是指运行在linux操作系统上的独占式网络应用程序; 不考虑分布式存储, 只考虑分布式计算; 进程与线程 进程(process)是操作系统里最重要的两个概念之一(另一个是文件), 粗略的讲, 一个进程是"内存中正在运行的程序"; 每个进程有自己独立的地址空间(adress space), "在同一个进程"还是"不在同一个进程&q…
muduo编程示例 muduo库是设计来开发内网的网络程序, 它没有做任何安全方面的加强措施, 如果在公网上可能会受到攻击; muduo库把主动关闭连接这件事分成两步来做: 如果主动关闭连接, 会先关本地写端, 等对方关闭之后, 再关闭本地读端; muduo Buffer类的设计与使用 muduo输入输出缓冲区的设计与实现; Unix/Linux上的五种IO模型: 阻塞(blocking); 非阻塞(non-blocking); IO复用(IO multiplexing); 信号驱动(signa…
<Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保证了系统的稳定和安全. 实现多任务和虚拟内存.保证良好的稳定性和安全性. 系统调用是用户空间访问内核的唯一手段:除异常和陷入外,是内核唯一合法的入口. API.POSIX和C库 应用程序通过在用户空间实现的应用编程接口(API)而非直接通过系统调用来编程. POSIX是应用编程接口的一个国际标准,C库提供了P…
<Linux内核设计与实现>第五章学习笔记 姓名:王玮怡  学号:20135116 一.与内核通信     在Linux中,系统调用是用户空间访问内核的唯一手段:除异常和陷入外,它们是内核的唯一合法入口. 二.API.POSIX.C库 1.API 一般情况下,应用程序通过在用户空间实现的应用编程接口(API)来编程,而不是直接通过系统调用. 2.POSIX 在Unix世界中,最流行的应用编程接口是基于POSIX标准的. 3.C库 C库实现了Unix系统的主要API,包括标准C库函数和系统调用接…
Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那样灵活和松耦合的Web应用程序. Spring MVC起步 跟踪Spring MVC的请求…
---恢复内容开始--- 第五章 系统调用 一.与内核通信 1.系统调用在用户控件进程和硬件设备之间添加了一个中间层. 为用户空间提供了一种硬件的抽象接口 系统调用保证了系统的稳定和安全 每个进程都运行在虚拟系统中,而在用户控件和系统的其余部分提供这样一层公共接口 2.作用 在Linux中,系统调用是用户空间访问内核的唯一手段 . 二.API.POSIX和C库 Linux的系统调用作为C库的一部分提供.C库:Unix系统的主要API,包括标准C库函数和系统调用接口,即POSIXdM大部分API.…