![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
并发编程
文章平均质量分 94
总结和积累网络编程中的并发编程技术和经验总结。
yunfan188
把时髦的技术挂在嘴边,还不如把过时的技术记在心里。
展开
-
Linux网络编程 - 基于 I/O 复用的聊天服务器端(epoll:LT 和 ET 模式实现)
基于 I/O复用的聊天服务器端的实现,其中服务器端分别使用 epoll 的条件触发(水平触发)和 边缘触发(边沿触发)方式实现。聊天客户端使用多线程技术实现消息发送和消息接收的功能。原创 2022-01-22 18:21:37 · 1576 阅读 · 0 评论 -
Linux网络编程 - 多线程服务器端的实现(2)
本文主要讲解线程同步以及使用多线程编程模型实现并发服务器端。原创 2022-01-22 17:11:45 · 719 阅读 · 0 评论 -
Linux网络编程 - 多线程服务器端的实现(1)
本文主要讲解Linux系统下的多线程编程技术,包括线程的基本概念、线程的基本操作、多线程编程存在的问题,什么是临界区等内容。原创 2022-01-20 18:09:07 · 3648 阅读 · 0 评论 -
Linux网络编程 - 基于 I/O 复用的服务器端(epoll:LT 和 ET 模式实现)
本文主要讲解 epoll 的两种工作模式:水平触发(Level Trigger,LT)模式和边缘触发(Edge Trigger,ET)模式。原创 2022-01-18 23:31:42 · 866 阅读 · 0 评论 -
Linux网络编程 - 基于 I/O 复用的服务器端(epoll 实现)
本文主要讲解Linux下的 I/O 多路复用之一的 epoll 技术。原创 2022-01-17 23:15:21 · 681 阅读 · 0 评论 -
Linux网络编程 - 基于 I/O 复用的服务器端(select 实现)
本文中我们将讨论并发服务器的第二种实现方法——基于I/O复用(Multi-plexing)的服务器端构建,并通过 select 函数实现 I/O 复用服务器端。原创 2022-01-12 12:38:12 · 1580 阅读 · 2 评论 -
五种网络I/O模型介绍
五种网络I/O模型阻塞I/O(Blocking I/O)非阻塞I/O(Non-blockingI/O)I/O复用(I/O Multiplexing)信号驱动式I/O(Singnal driven I/O)异步I/O(Asynchronous I/O)Tip:前四种都是同步I/O,只有最后一种才是异步I/O。I/O事件发生时涉及的对象和阶段对于一个网络I/O(这里我...原创 2020-06-30 19:28:11 · 1271 阅读 · 0 评论 -
IO多路复用之select、poll、epoll之间的区别总结
select、poll、epoll都是IO多路复用的机制。IO多路复用就是通过一种机制,让一个进程/线程可以监视多个描述符,一旦某个描述符就绪(一般是读写就绪),能够通知应用程序进行相应的读写操作。I/O复用虽然能同时监听多个文件描述符,当其本质上还是同步IO模型,因为需要在读写事件就绪后程序自己负责进行读写事件的处理,而这个读写过程是阻塞的。如果要实现并发,只能使用多进程/多线程等编程手段了。...原创 2021-07-10 16:46:00 · 2223 阅读 · 1 评论 -
epoll多路复用的一个实例程序(C实现)
1、实例程序描述编写一个echo server程序,功能是客户端向服务端发送消息,服务端接收到消息后输出,并原样返回给客户端,客户端接收到服务端的应答消息并打印输出。2、公共接口函数部分2.1、common.h 源文件/****描述:公共头文件*/#include <stdio.h>#include <string.h>#include <stdlib.h>#include <errno.h>#include <fcnt原创 2021-07-10 15:52:43 · 766 阅读 · 1 评论 -
I/O多路复用的实现机制 - epoll 用法总结
epoll 是Linux 特有的 I/O 多路复用函数,是在Linux 2.6内核版本中提出的,是之前的 select 和 poll 的增强版本。它在实现和使用上与 select、poll有很大的差异。原创 2021-07-09 12:08:01 · 1049 阅读 · 0 评论 -
I/O多路复用的实现机制 - poll 用法总结
一、基本知识poll的多路复用机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询(polling),根据描述符的状态进行处理,但是poll没有最大文件描述符数量上的限制。二、poll函数poll函数的原型声明://使用:man 2 poll,查看poll函数的使用帮助信息(CentOS-7.6)#include <poll.h>int poll(struct pollfd *fds, nfds_t nfds, int timeout);原创 2020-07-03 21:26:57 · 752 阅读 · 0 评论 -
I/O多路复用的实现机制 - select 用法总结
本文主要讲解 I/O多路复用的基本原理以及使用 select 函数的 I/O 多路复用使用方法。原创 2020-07-02 21:03:21 · 806 阅读 · 0 评论 -
Linux网络编程 - 在服务器端运用进程间通信之管道(pipe)
本文主要讲解进程间通信之一的管道(匿名管道)方式,讨论Linux系统中管道的工作原理及其使用方法,并将管道机制运用在Linux网络编程之中。原创 2022-01-10 19:01:55 · 2110 阅读 · 0 评论 -
同步函数与异步函数
同步、异步概念定义:同步和异步关注的是消息通信机制(synchronous communication/ asynchronous communication)。从程序同步,就是调用方发起某个调用后,调用方得等待这个调用返回结果才能继续往下执行。异步,和同步相反 调用方不会等待调用返回结果,而是在调用发出后,调用者继续执行后续操作,被调用者通过某种反馈机制来通知调用者,比如说监听被调用者的...原创 2019-11-01 17:00:46 · 6388 阅读 · 2 评论 -
并发和并行
并发、并行概念并发(concurrentcy)并行(parallel)并发:指在同一时刻只能有一条指令在执行,但多个进程/线程指令被快速轮换执行,使得在宏观上具有多个进程/线程同时执行的效果,但在微观上并不是同时执行的,只是把CPU运行时间分成若干个时间片,使得多个进程/线程快速交替地在CPU上执行。并行:在同一时刻有多条指令在多个处理器上同时执行。解释一:并行是指两...原创 2019-10-31 12:03:02 · 219 阅读 · 0 评论 -
同步与异步、阻塞与非阻塞
对编程中四个概念的理解:同步(Synchronous)、异步(Asynchronous)、阻塞(Blocking)、非阻塞(Non-blocking)。原创 2019-11-01 00:20:21 · 4392 阅读 · 1 评论