- 博客(6)
- 收藏
- 关注
原创 非阻塞connect详解
我们先来讲connect函数(本文针对的是TCP)#include<sys/socket.h>int connect(int sockfd, const struct sockaddr* servaddr, socklen_t addrlen);参数大家应该都知道,我在这里提一下,为什么第二个参数要用 struct sockaddr*?这是因为ANSI C标准为我们定义了一...
2019-10-28 16:05:24 1141
原创 进程池详解(linux)
进程池进程池是我们创建一组进程,进程数目可以自己的规定,目的是为了让我们可以并发的去处理任务,此文处理的是网络请求的进程池。采用的是半同步/半反应堆模式的进程池。主进程epoll监听listenfd,如有客户连接根据特定算法将客户连接套接字利用管道发送给进程池中的某个进程,让其进行监听。该算法主要是为了平衡进程池中每个进程epoll监听的套接字数量。防止某个进程监听过多性能降低。然后每个进...
2019-10-14 19:21:08 919 16
原创 linux创建进程do_fork()详解
do_fork()下面是do_fork()精简后的源码long do_fork(unsigned long clone_flags, unsigned long stack_start, unsigned long stack_size, int __user *parent_tidptr, int __user *child_tidpt...
2019-10-13 15:20:57 819
原创 clone()函数及其与Linux线程实现的关系
#include<sched.h>int clone(int (*func)(void*), void *child_stack, int flags, void* fimc_arg ...);/* pid_t *ptid, struct user_desc* tls, pid_t* ctid*/还有三个参数在Linux2.6版本中提出,主要是为了线程的实现。return pr...
2019-10-13 15:15:53 1136 1
原创 进程间通信
进程是Linux操作系统环境的基础,它控制着系统上几乎所有的活动。进程基础概念复制进程映像的fork系统调用和替换进程映像的exec系列系统调用僵尸进程以及如何避免僵尸进程进程间通信 最简单的方式: 管道3种system V进程间通信方式: 信号量、消息队列和共享内存。在进程间传递文件描述符的通用方法:通过unix本地域socket传递特殊的辅助数据。...
2019-10-11 12:23:22 121
原创 二分查找(Binary search)
二分查找#include<iostream>#include<array>#include<memory>class search{public: int s1(int arr[], int len, int ser); //二分查找查找一个数 int s2(int arr[], int len, int ser); //二分查找 ...
2019-10-08 20:34:37 471
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人