Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Linux通过改进的epoll实现对不同超时时间的数据包重传

Linux通过改进的epoll实现对不同超时时间的数据包重传

应用背景:epoll模型是当前Linux网络编程的主流模型,可以高效解决多个事件并发的问题。在进行网络编程时,往往要对每一个发出的数据包进行ACK确认,若在指定的时间内没有收到ACK,则需要重传或者丢弃该数据包。那么如果在epoll模型中实现该功能呢?先来看看传统的做法:程序维护一个“已发出但是没收到ACK”的数据包记录R,记录包括数据包内容、数据包发送的时间戳t以及超时时间T。当需要进行数据包发送时,在发出数据包的同时把该数据包加...
关于libevent的定时器

关于libevent的定时器

对于定时器事件,Libevent采用两种方法处理定时器:1、定时器尾队列2、时间堆在event结构体中,定义了联合体类型ev_timeout_pos来指明定时器的位置//仅用于定时事件处理器:当为通过定时器时,ev_next_with_common_timeout指向定时器队列中的位置//当为其它定时器时,min_heap_idx为指向时间堆中的索引union { TAILQ_ENTRY(event) ev_next_with_common_timeout...
Python 并发编程之使用多线程和多处理器

Python 并发编程之使用多线程和多处理器

在Python编码中我们经常讨论的一个方面就是如何优化模拟执行的性能。尽管在考虑量化代码时NumPy、SciPy和pandas在这方面已然非常有用,但在构建事件驱动系统时我们无法有效地使用这些工具。有没有可以加速我们代码的其他办法?答案是肯定的,但需要留意!在这篇文章中,我们看一种不同的模型-并发,我们可以将它引入我们Python程序中。这种模型在模拟中工作地特别好,它不需要共享状态。Monte Carlo模拟器可以用来做期权定价以及检验算法交易等类型的各...
C++11多线程编程之互斥量

C++11多线程编程之互斥量

一、互斥量互斥量或者互斥锁(Mutex)是一种实现线程间对资源互斥访问的机制。操作互斥锁的时间和空间开销相对比较低,因而常用于高频使用的关键共享数据和程序段。互斥锁有两种状态,开锁(unlock)和关锁(lock)。我们就是通过这种线程同步手段在多线程编程中来防止多个线程同时操作共享资源。一旦线程锁住了互斥量,那么其他线程就必须等待它解锁互斥量才能再访问共享资源。推荐阅读:C++ Primer Plus 第6版 中文版 清晰有书签PDF+源代码 http:...
《C++ Primer》 对象、数组、基于对象设计、泛型设计

《C++ Primer》 对象、数组、基于对象设计、泛型设计

数组C++ 不支持数组的抽象 abstraction 也不支持对整个数组的操作我们有时会希望对整个数组进行操作例如把一个数组赋值给另外一个数组对两个数组进行相等比较或者想知道数组的大小 size 例如给出两个数组我们不能用赋值操作符把一个数组拷贝到另一个中去。int array0[ 10 ], array1[ 10 ];array0 = array1; // error数组类型本身没有自我意识它不知道自己的长度我们必须另外记录数组本身的这些信息。数组和指针...
C++11中的指针空值nullptr

C++11中的指针空值nullptr

一、为什么要有指针空值nullptr在良好的编码习惯中,声明一个指针并对其进行初始化非常重要,未初始化的悬挂指针常导致一些难以调试的错误。往常,我们常这样初始化指针变量:int* my_ptr1=0;int* my_ptr2=NULL;但我们知道,NULL其实是一个宏定义,字面常量为0,即上述两种方式本质上是一样的。于是,这样就有了一些麻烦,比如函数重载时,我们定义了如下两个版本的函数:#include<iostream>using names...
函数对象的函数适配器

函数对象的函数适配器

一。标准库定义的函数对象:标准库定义了一组用于算术、关系、逻辑运算的函数对象类,他们都是类模板,定义在头文件functional中;1. 在这里举一个算术函数对象类型的例子:plus<Type> 对2个给定元素进行 + 运算,它定义了调用操作符的类模板,所以是二元函数对象;要对数值1和2进行加法运算,可以写如下代码:plus<int> add; //定义加法运算的类模板的实例;int sum = add(1, 2); //调用了类模...
<< 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 >>