
Linux » Linux 高性能服务器编程:信号 6
概述 信号是由用户 、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。 Linux信号产生条件: 对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。 比如Ctrl+C通常会给进程发送一个中断信号。 系统异常。 比如浮点数异常和非法内存段访问。 ...
概述 信号是由用户 、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。 Linux信号产生条件: 对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。 比如Ctrl+C通常会给进程发送一个中断信号。 系统异常。 比如浮点数异常和非法内存段访问。 ...
三组I/O复用对比 概述 上述select,poll和epoll都能同时监听多个文件描述符。它们将等待由timeout参数指定的超时时间,直到一个或多个文件描述符上有事件发生时,返回值是就绪的文件描述符的数量。返回0表示没有事件发生。 这3个函数都通过某种结构体变量来告诉内核监听...
概述 I/O复用使得程序能同时监听多个文件描述符,这对提高程序的性能很重要。 通常,网络程序在下列情况下需要使用I/O复用技术: 客户端程序要同时处理多个socket。 客户端程序要同时处理用户输入和网络连接。 TCP服务器要同时处理监听socket和连接socket。 服务器要...
两种高效的并发模式 并发编程的目的是让程序“同时”执行多个任务。 如果程序是计算密集型的,并发编程并没有优势,反而由于任务的切换使效率降低。 但如果程序是I/O密集型的,比如经常读写文件,访问数据库等,则情况就不同了。 由于I/O操作的速度远没有CPU计算速度快,所以让程序阻塞I...
服务器模型 C/S模型 TCP/IP协议在设计和实现上并没有客户端和服务器的概念,在通信过程中所有机器都是对等的。 C/S模型的逻辑很简单。 服务器启动后,首先创建一个或多个监听socket,并调用bind函数将其绑定到服务器感兴趣的端口上。 然后调用listen函数等待客户连接...
概述 守护进程 Linux服务器程序一般以后台进程形式运行。后台进程又称为守护进程(daemon)。 它没有控制终端,因而也不会意外接收到用户收入。 守护进程的父进程通常是init进程(PID为1的进程)。 日志 Linux服务器程序通常有一套日志系统,它至少能输出日志到文件,有...
源码实现 模板类函数指针 命名空间宏定义 与或判断选项开关 判断Windows安装某款字体 这里的实现是通过判断注册表来判断是否安装了某款字体。 应用 lbtoast_menu.h lbtoast_menu.cpp 弹出窗口 关于定时器 监听不到想监听的消息 需要在对应的消息映射...