Posts
秘秘秘秘秘密
Cancel

1. 概述 为什么不能通过动态创建子进程(线程)来实现并发服务器? 不是不行,效率不太高,所以提出了“池”技术。 当有新任务到来的时候,主进程通过哪种方式选择进程池中的某个子进程为其服务? 主进程使用某种算法主动选择子进程,随机算法,轮转算法,等。 主进程和子...

1. 常见API 基本API pthread_create() int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); pthread...

1. 一些前面博客提到过的基础 fork() 系统调用 僵尸进程与孤儿进程 wait() 与 waitpid() waitpid() 可以通过选项设置为非阻塞 管道 进程间的通信 . socketpair 用于创建全双工管道。 2. Linux 内核的IPC(进程间通信) 信号灯(信号量) ...

1. demo1 libevent 的使用 常规事件 write 客户端 // // Created by xm on 2022/4/24. // #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <s...

一共三种方式: socket 选项 详情在第五章 SIGALRM 信号 IO复用系统调用超时参数 1. socket 选项 解析 具体的可以看第五章 demo int timeout_connect(const char *ip,int port ,int time){ int ret = 0; struct sockaddr_in addres...

0. 信号概述 1. 发送信号 api `int kill(pid_t pid, int sig);` 2. 处理信号 3. 信号分类 4. 中断系统调用 1. signal 函数原型 ` sighandler_t signal(int signum, sighandler_t handler);` sighandler_t 参数 ...

讲解视频 1. select系统调用 上世纪八十年代就出现了该API,现在仍有很多系统再用该API。 select系统调用的用途是,在指定时间内,监听用户感兴趣的文件描述符上的可读,可写和异常事件。 其核心思想是:在指定时间内轮训一定数量的文件描述符,以测试其中是否有就绪者。 1. select API 函数原型 int select(int nfd...

1. 服务器基本框架 IO处理单元 一个专门的接入服务器,他实现负载均衡,从所有的逻辑服务器中选取负荷最小的一台来为新客户服务。 逻辑单元 一个逻辑单元通常是一个进程或者线程,它分析并处理客户数据。 网络存储单元 数据库或者缓存(非必须) 2. IO模型 同步IO想应用程序通知的是IO就绪事件,异步IO向应...

1. 日志函数 syslog syslog 2. 用户信息 UID(真实用户ID) 与 EUID(有效用户ID) 为什么引入EUID(有效用户id)? 允许不同的用户以UID的权限运行改程序。设置set-user-id字段,任何用户启动该程序,其有效用户就是该程序的所有者 demo 切换用户 /* * 以root身份启动的进程切换为一个普通用户身份运行 */ st...

0. pipe 与 dup 1. pipe 默认为阻塞, ` int socketpair(int domain, int type, int protocol, int sv[2]);` 2. dup int dup(int oldfd); int dup2(int oldfd, int newfd); 3.demo int main(int argc,char *argv[...

Trending Tags