Liekkas
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
6. muduo网络库简介

6. muduo网络库简介

第6章 muduo网络库简介 1. 由来 2010年3月我写了一篇《学之者生,用之者死——ACE历史与简评》,其中提到“我心目中理想的网络库”的样子: 线程安全,原生支持多核多线程。 不考虑可移植性,不跨平台,只支持Linux,不支持Windows。 主要支持x86-64,兼顾IA32。(实际上muduo也可以运行在ARM上。) 不支持UDP,只支持TCP。 不支持IPv6,只
2024-12-25
c++ > muduo多线程服务器
#muduo
5. 高效的多线程日志

5. 高效的多线程日志

第5章 高效的多线程日志 “日志(logging)”有两个意思: 诊断日志(diagnostic log)即log4j、logback、slf4j、glog、g2log、log4cxx、log4cpp、log4cplus、Pantheios、ezlogger等常用日志库提供的日志功能。 交易日志(transaction log)即数据库的write-ahead log、文件系统的jo
2024-12-25
c++ > muduo多线程服务器
#muduo
4. C++多线程系统编程精要

4. C++多线程系统编程精要

第4章 C++多线程系统编程精要 学习多线程编程面临的最大的思维方式的转变有两点: 1. 当前线程可能随时会被切换出去,或者说被抢占(preempt)了。 2. 多线程程序中事件的发生顺序不再有全局统一的先后关系。 当线程被切换回来继续执行下一条语句(指令)的时候,全局数据(包括当前进程在操作系统内核中的状态)可能已经被其他线程修改了。例如,在没有为指针P加锁的情况下,if (p &
2024-12-24
c++ > muduo多线程服务器
#muduo
3. 多线程服务器的适用场合与常用编程模型

3. 多线程服务器的适用场合与常用编程模型

第3章 多线程服务器的适用场合与常用编程模型 总结了一些常用的线程模型,归纳了进程间通信与线程同步的最佳实践,以期用简单规范的方式开发功能正确、线程安全的多线程程序。本章假定读者已经有多线程编程的知识与经验(本书不是一篇入门教程)。 文中的“多线程服务器”是指运行在Linux操作系统上的独占式网络应用程序。硬件平台为Intel x86-64系列的多核CPU,单路或双路SMP服务器(每台机器
2024-12-24
c++ > muduo多线程服务器
#muduo
2. 线程同步精要

2. 线程同步精要

第2章 线程同步精要 并发编程有两种基本模型,一种是message passing,另一种是shared memory。在分布式系统中,运行在多台机器上的多个进程的并行编程只有一种实用模型:message passing。 在单机上,我们也可以照搬message passing作为多个进程的并发模型。这样整个分布式系统的架构的一致性很强,扩容(scale out)起来也较容易。
2024-12-23
c++ > muduo多线程服务器
#muduo
1. 线程安全的对象生命期管理

1. 线程安全的对象生命期管理

第1章 线程安全的对象生命期管理 编写线程安全的类不是难事,用同步原语(synchronization primitives)保护内部状态即可。但是对象的生与死不能由对象自身拥有的mutex(互斥器)来保护。 如何避免对象析构时可能存在的race condition(竞态条件)是C++多线程编程面临的基本问题,可以借助Boost库中的shared_ptr和weak_ptr完美解决。这也是
2024-12-22
c++ > muduo多线程服务器
#muduo
17. 系统监测工具

17. 系统监测工具

第17章 系统监测工具 1. tcpdump tcpdump常见的选项总结如下: 12345678910111213-n,使用IP地址表示主机,而不是主机名;使用数字表示端口号,而不是服务名称。-i,指定要监听的网卡接口。“-i any”表示抓取所有网卡接口上的数据包。-v,输出一个稍微详细的信息,例如,显示IP数据包中的TTL和TOS信息。-t,不打印时间戳。-e,显示以太网帧头部信息。-
2024-12-16
c++ > Linux高性能服务器-游双
#网络编程
16. 服务器调制、调试和测试

16. 服务器调制、调试和测试

第16章 服务器调制、调试和测试 Linux平台的一个优秀特性是内核微调,即我们可以通过修改文件的方式来调整内核参数。16.2节将讨论与服务器性能相关的部分内核参数。这些内核参数中,系统或进程能打开的最大文件描述符数尤其重要,所以我们在16.1节单独讨论之。 在服务器的开发过程中,我们可能碰到各种意想不到的错误。一种调试方法是用tcpdump抓包,正如本书前面章节介绍的那样。不过这种方法主要用
2024-12-16
c++ > Linux高性能服务器-游双
#网络编程
15. 进程池和线程池

15. 进程池和线程池

第15章 进程池和线程池 在前面的章节中,我们是通过动态创建子进程(或子线程)来实现并发服务器的。这样做有如下缺点: 动态创建进程(或线程)是比较耗费时间的,这将导致较慢的客户响应。 动态创建的子进程(或子线程)通常只用来为一个客户服务(除非我们做特殊的处理),这将导致系统上产生大量的细微进程(或线程)。进程(或线程)间的切换将消耗大量CPU时间。 动态创建的子进程是当前进程的完整映像
2024-12-16
c++ > Linux高性能服务器-游双
#网络编程
14. 多线程编程

14. 多线程编程

第14章 多线程编程 自内核2.6开始,Linux才真正提供内核级的线程支持,并有两个组织致力于编写新的线程库:NGPT(Next Generation POSIX Threads)和NPTL(Native POSIX Thread Library)。不过前者在2003年就放弃了,因此新的线程库就称为NPTL。NPTL比LinuxThreads效率高,且更符合POSIX规范,所以它已经成为g
2024-12-16
c++ > Linux高性能服务器-游双
#网络编程
1…89101112…37

搜索

Hexo Fluid