Linux 高性能服务器编程:Libevent

Linux 高性能服务器编程:Libevent 6

bingliaolong Linux 3年前 10 0

概述 Linux服务器程序必须处理三类事件: I/O事件 信号 定时事件 在处理这三类事件时通常需要考虑三个问题: 统一事件源 可移植性 对并发编程的支持 I/O框架概述 I/O框架库以库函数的形式,封装了较为底层的系统调用,给应用程序提供了一组方便使用的接口 这些库函数往往比程...

线程和协程

线程和协程

bingliaolong C++ Windows 7个月前 10 0

超线程技术 概述 现代CPU通常确实在物理核心的基础上引入逻辑核心,例如通过超线程(Hyper-Threading)技术,一个物理核心能够处理两个线程 使得操作系统和应用程序认为该CPU拥有的核心数量翻倍 不过,CPU的逻辑核心和线程的概念在软件开发中存在一些区别 逻辑核心更偏向...

Linux 高性能服务器编程:I/O复用一

Linux 高性能服务器编程:I/O复用一 2

bingliaolong Linux 3年前 8 0

概述 I/O复用使得程序能同时监听多个文件描述符,这对提高程序的性能很重要。 通常,网络程序在下列情况下需要使用I/O复用技术: 客户端程序要同时处理多个socket。 客户端程序要同时处理用户输入和网络连接。 TCP服务器要同时处理监听socket和连接socket。 服务器要...

Linux 高性能服务器编程:高性能服务器架构二

Linux 高性能服务器编程:高性能服务器架构二 7

bingliaolong Linux 3年前 5 0

两种高效的并发模式 并发编程的目的是让程序“同时”执行多个任务。 如果程序是计算密集型的,并发编程并没有优势,反而由于任务的切换使效率降低。 但如果程序是I/O密集型的,比如经常读写文件,访问数据库等,则情况就不同了。 由于I/O操作的速度远没有CPU计算速度快,所以让程序阻塞I...

网络I/O  介绍

网络I/O 介绍 4

bingliaolong Socket 5年前 4 0

介绍 网络应用需要处理解决的主要可以归为两大类问题: 网络I/O 数据计算 网络I/O的本质是socket的读取,socket在linux系统被抽象为流,I/O可以理解为对流的操作。这个操作又分为两个阶段: 等待流数据准备(wating for the data to be re...

Linux 高性能服务器编程:I/O复用二

Linux 高性能服务器编程:I/O复用二 3

bingliaolong Linux 3年前 4 0

三组I/O复用对比 概述 上述select,poll和epoll都能同时监听多个文件描述符。它们将等待由timeout参数指定的超时时间,直到一个或多个文件描述符上有事件发生时,返回值是就绪的文件描述符的数量。返回0表示没有事件发生。 这3个函数都通过某种结构体变量来告诉内核监听...

Linux 高性能服务器编程:高性能服务器架构一

Linux 高性能服务器编程:高性能服务器架构一 8

bingliaolong Linux 3年前 2 0

服务器模型 C/S模型 TCP/IP协议在设计和实现上并没有客户端和服务器的概念,在通信过程中所有机器都是对等的。 C/S模型的逻辑很简单。 服务器启动后,首先创建一个或多个监听socket,并调用bind函数将其绑定到服务器感兴趣的端口上。 然后调用listen函数等待客户连接...

扫一扫二维码分享