设为首页 加入收藏

TOP

使用epoll+时间堆实现高性能定时器(二)
2014-11-23 23:22:56 来源: 作者: 【 】 浏览:25
Tags:使用 epoll +时间 实现 高性能 定时器
ivate:
void percolate_down( int hole )
{
heap_timer* temp = array[hole];
int child = 0;
for ( ; ((hole*2+1) <= (cur_size-1)); hole=child )
{
child = hole*2+1;
if ( (child < (cur_size-1)) && timercmp( &(array[child+1]->expire), &(array[child]->expire), < ) )
{
++child;
}
if ( timercmp( &(array[child]->expire), &(temp->expire), < ) )
{
array[hole] = array[child];
}
else
{
break;
}
}
array[hole] = temp;
}
void resize() throw ( std::exception )
{
heap_timer** temp = new heap_timer* [2*capacity];
for( int i = 0; i < 2*capacity; ++i )
{
temp[i] = NULL;
}
if ( ! temp )
{
throw std::exception();
}
capacity = 2*capacity;
for ( int i = 0; i < cur_size; ++i )
{
temp[i] = array[i];
}
delete [] array;
array = temp;
}



private:
heap_timer** array;
int capacity;
int cur_size;
};


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇你可能没听过的 Java 8 中的 10 .. 下一篇Linux通过改进的epoll实现对不同..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: