![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
浅时光〃
这个作者很懒,什么都没留下…
展开
-
多进程&多线程
多进程accept()创建子进程,由子进程和客户端通讯,父进程继续接受客户端连接 启动多个进程,每个进程执行和一个客户端交互的程序 父进程完成与客户端的连接工作,完成后,创建子进程,子进程与客户端具体交互 子进程继承父进程打开的文件描述符(accept返回的文件描述符) 父进程必须关闭文件描述符#include<stdio.h>#include<string.h...原创 2019-08-03 13:56:22 · 209 阅读 · 0 评论 -
进程池&线程池
进程池和线程池概述进程池和线程池相似,所以这里我们以进程池为例介绍,下面对进程池的讨论完全适用于线程池(如果没有特殊声明)。进程池是由服务器预先创建的一组子进程,这些子进程的数目在3~10个之间(典型情况)。线程池的数量应该和CPU数量差不多。进程池中的所有子进程都运行者相同的代码,并具有相同的属性。因为进程池在服务器启动之初就创建好了,所以每个子进程都相对“干净”,即它们没有打开不必...原创 2019-08-04 17:34:50 · 310 阅读 · 0 评论 -
线程的同步方法
1、信号量这里和进程间的信号量作用相似,当线程访问一些有限的共享资源时,就必须做到线程间同步访问。信号量的使用方式:#include<semaphore.h>初始化:int sem_init(sem_t *sem,int shared,int val);信号量sem一般被定义在线程共享的全局数据区,sem_init函数是将信号量sem的初始值设置为val,shared参...原创 2019-07-31 20:38:07 · 150 阅读 · 0 评论 -
I/O复用——select
I/O复用——一个进程或线程能同时对多个文件描述符(socket)提供服务。select 记录每种时间的结构,在数组按位来记录关注的文件描述符上的事件 每次最多可以监听1024个文件描述符,并且其最大值是1023 select函数返回时,通过传递的结构体变量将结果带回,并且内核会修改用户变量 int select(int nfds,fd_set *readfds,...原创 2019-08-05 14:31:15 · 144 阅读 · 0 评论 -
线程安全
相同的条件下,同一份程序,多次执行结果不同,执行结果有二义性,说明该线程是不安全的,那么怎样使线程变得安全就成了一个值得研究的问题。下面我们以一个例子来说明这个问题;#include<stdio.h>#include<string.h>#include<unistd.h>#include<stdlib.h>#include<a...原创 2019-08-01 17:23:21 · 103 阅读 · 0 评论 -
TCP编程流程
用到的函数#include<sys/types.h>#include<sys/socket.h>int socket(int domain,int type,int pro);//创建socket返回值:出错返回-1,成功返回文件描述符domain:协议簇 AF_INETtype:具体的协议 SOCK_STREAMPro:默认为0int...原创 2019-08-01 21:09:11 · 181 阅读 · 0 评论 -
I/O复用——poll&epollu
poll系统调用和select类似,也是在指定的时间内轮询一定数量的文件描述符,以测试其中是否有就绪者。int poll(struct pollfd *fds,int nfds,int timeout);fds:是一个pollfd结构类型的数组,它指定所有用户感兴趣的文件描述符上发生的可读、可写和异常等事件。传入的是数组的首地址 。pollfd结构体定义:struct pollf...原创 2019-08-08 16:36:12 · 164 阅读 · 0 评论 -
LT模式&ET模式
LT:在数据到达之后,无论程序是没有接收,还是接收了,但没有接收完,下一轮epoll_wait仍然会提醒应用程序该描述符上有数据,知道数据被接收完。ET:在数据到达之后,无论程序是没有接收,还是接收了,但是没有接收完,都只提醒一次,下一轮不再提醒应用程序该描述符上有数据。同一事件仅仅被触发一次ET的实现:#include<string.h>#include<s...原创 2019-08-08 18:35:32 · 489 阅读 · 0 评论 -
TCP和UDP——总结
一、什么是TCP?TCP是TCP/IP体系中一个非常复杂的协议。1、TCP的主要特点1)TCP是面向连接的运输层协议。在使用TCP协议之前必须先建立连接,数据从传送完之后必须释放连接。(这里类似于打电话,通话之前必须先拨号建立连接,结束通话需要挂断,断开连接)2)每个TCP连接只能有两个端点,一条TCP连接之间必须是点对点(一对一)的。3)TCP提供全双工通讯(全双工通讯指...原创 2019-04-02 21:02:15 · 526 阅读 · 0 评论