Linux高性能服务器编程 高并发服务器
发表于|更新于|Linux高性能服务器编程
|总字数:150|阅读时长:1分钟|浏览量:
高并发服务器
1.多进程并发服务器
linux网络编程 | c | 多进程并发服务器实现-CSDN博客
2.多线程并发服务器
linux网络编程 | c | 多线程并发服务器实现-CSDN博客
3.多路IO转接服务器
1.select
linux网络编程 | c | select实现IO多路转接服务器-CSDN博客
2.poll
linux网络编程 | c | select实现IO多路转接服务器-CSDN博客
3.epoll
linux网络编程 | c | epoll实现IO多路转接服务器-CSDN博客
4.libevent
5.UDP
文章作者: Darling
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Darlingの妙妙屋!
相关推荐

2024-12-19
Linux高性能服务器编程 11. 多进程编程
11. 多进程编程 复制进程映像的fork系统调用和替换进程映像的exec系列系统调用。 僵尸进程以及如何避免僵尸进程。 进程间通信(Inter Process Communication,IPC)最简单的方式:管道。 三种System V进程间通信方式:信号量、消息队列、共享内存。它们是由AT&T System V2版本的UNIX引入的,所以统称为System V IPC。 在进程间传递文件描述符的通用方法:通过UNIX本地域socket传递特殊的辅助数据。(关于辅助数据,参考《Linux 高性能服务器编程》P85) 0.前置知识1.PCBPCB进程控制块本质是一个task_struct结构体 进程id,每个进程唯一一个 进程切换时需要保存和恢复的一些CPU寄存器 描述虚拟地址空间的信息 进程状态: 初始态、就绪态、运行态、挂起态、终止态。 进程工作目录位置 umask掩码 ...

2024-12-17
Linux高性能服务器编程 10. 高性能I/O框架库Libevent
10. 高性能I/O框架库LibeventLinux服务器程序必须处理三类事件(I/O、信号和定时事件),在处理这三类事件时需要考虑以下问题: **统一事件源。**统一处理这三类事件既能使代码简单易懂,又能避免一些潜在的逻辑错误。实现统一事件源的一般方法:利用 I/O复用系统调用来管理所有事件。 **可移植性。**不同的操作系统有不同的I/O复用方式,如Solaris的dev/poll文件、FreeBSD的kqueue机制、Linux的epoll系列系统调用。 **对并发编程的支持。**在多进程和多线程环境下,我们需要考虑各执行实体如何协同处理客户连接、信号、定时器,以避免竞态条件。 开源社区提供了很多优秀的开源I/O框架库,它们不仅解决了以上问题,让开发者可以将精力完全放在程序的逻辑上,而且稳定性、性能等各方面都相当出色,如ACE、ASIO 和...

2024-12-19
Linux高性能服务器编程 12. 多线程编程
12. 多线程编程06-线程概念_哔哩哔哩_bilibili 早期Linux不支持线程,直到1996年,Xavier Leroy等人开发出第一个基本符合POSIX标准的线程库LinuxThreads,但LinuxThreads效率低且问题多,自内核2.6开始,Linux才开始提供内核级的线程支持,并有两个组织致力于编写新的线程库:NGPT(Next Generation POSIX Threads)和NPTL(Native POSIX Thread Library),但前者在2003年就放弃了,因此新的线程库就是NPTL。NPTL比LinuxThreads效率高,且更符合POSIX规范,所以它已经成为glibc的一部分,本书使用的线程库是NPTL。 本章要讨论的线程相关的内容都属于POSIX线程(简称 pthread)标准,不局限于NPTL实现,包括: 创建线程和结束线程; 读取和设置线程属性; POSIX线程同步方式:POSIX信号量、互斥锁和条件变量。 1.线程概念1.什么是线程**LWP:**light weight process...

2024-12-12
Linux高性能服务器编程 5. Linux服务器程序规范
5. Linux服务器程序规范1.进程 PID进程的PID(Process ID)是操作系统中用于唯一标识一个进程的整数值。每个进程在创建时,操作系统都会分配一个唯一的PID,用来区分不同的进程。 PID的特点1.唯一性: 在操作系统运行的某一时刻,每个进程的PID都是唯一的。不同进程不会共享同一个PID。即使一个进程终止后,该PID可以被回收并分配给新创建的进程,但在同一时刻不会有两个进程拥有相同的PID。 2.进程生命周期: PID 的生命周期与进程的生命周期相对应。当一个进程被创建时,操作系统为它分配一个PID;当进程终止时,该PID被释放,并可能被分配给后续的新进程。 3.系统管理和调试: PID 在进程管理和调试中起着重要作用。系统管理员和开发者可以通过PID来监视、控制和调试进程。例如,使用 ps 命令可以查看系统中所有进程的PID,以及它们的状态、资源使用等信息。使用 kill 命令可以通过PID来终止指定的进程。 PID的分配PID 是由操作系统内核管理和分配的,通常是一个非负整数。PID...

2024-12-12
Linux高性能服务器编程 4. 高级 I/O 函数
4. 高级 I/O 函数1.文件描述符文件描述符(File Descriptor, FD)是操作系统中用于访问文件的一个抽象概念。它是一个非负整数,通常由操作系统分配,用来标识被打开的文件或输入输出资源(如管道、网络连接等)。文件描述符在操作系统和应用程序之间充当桥梁,允许程序通过文件描述符来读取、写入文件或进行其他I/O操作。 1.文件描述符的类型文件描述符通常分为三类标准描述符: 标准输入(Standard Input,FD 0): 默认情况下与键盘关联,通常用于从用户那里接收输入数据。 标准输出(Standard Output,FD 1): 默认情况下与终端窗口关联,通常用于向用户显示输出数据。 标准错误(Standard Error,FD 2): 默认情况下也与终端窗口关联,但通常用于显示错误消息或诊断信息。 2.文件描述符的使用在UNIX和类UNIX操作系统中,文件描述符用于各种I/O操作,包括: 打开文件:open() 系统调用返回一个文件描述符,表示已打开的文件。 读取文件:read()...

2024-12-11
Linux高性能服务器编程 3.Linux网络编程基础API
3. Linux网络编程基础API 1.主机字节序和网络字节序现代 CPU 的累加器一次都能装载(至少)4个字节(对于 32 位的机器),即一个 int 类型。那么这4个字节在内存中排列的顺序将影响它被累加器装载的整数值,这就是字节序问题。 字节存储顺序主要分为大端序(Big-endian)和小端序(Little-endian),区别如下 Big-endian:高位字节存入低地址,低位字节存入高地址 Little-endian:低位字节存入低地址,高位字节存入高地址 例如,将12345678h写入1000h开始的内存中,以大端序和小端序模式存放结果如下: 现代 PC 大多采用小端字节序,因此小端字节序又称为主机字节序; 而在两台不同字节序的主机之间传递数据时,发送端总是把要发送的数据转化成大端字节序数据后再发送,因此大端字节序也被称为网络字节序。 网络字节顺序是TCP / IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释,网络字节顺序采用大端排序方式。 “大同小异 ”:大端字节序的...
评论
公告
上学的第一天就在为高考做准备,谈恋爱的第一天就在为结婚做准备,工作的第一天就在为买房做准备。如果任何一个环节出了问题,结论就是“这么多年书白读了”“白白在一个人身上浪费青春”“工作了这么多年有什么用”。 ————功利主义导向的思考方式往往使我们忘却了生命的本质是一场历程。