最小堆定时器的实现
上一篇博文实现了升序定时器链表,但是存在一个问题:添加定时器的效率偏低。后来产生了两种定时器实现方案:时间轮和时间堆。下面来实现最小堆定时器。
c++实现的最小堆定时器代码如下:
#ifndef intIME_HEAP
#define intIME_HEAP
#include <iostream>
#include <netinet/in.h>
#include <time.h>
using std::exception;
#define BUFFER_SIZE 64
class heap_timer;
struct client_data
{
sockaddr_in address;
int sockfd;
char buf[ BUFFER_SIZE ];
heap_timer* timer;
};
class heap_timer
{
public:
heap_timer( int delay )
{
expi