使用libevent库作为例子
下载 & 编译 & 安装libevent
$ git clone https://github.com.cnpmjs.org/libevent/libevent.git
$ cd libevent && mkdir build && cd build
$ cmake ..
$ make
libevent实现的定时器
// main.cpp
#include "event.h"
struct event ev;
struct timeval tv;
void time_cb(evutil_socket_t fd, short event, void *argc)
{
printf("timer wakeup\n");
event_add(&ev, &tv); // reschedule timer
}
int main()
{
struct event_base *base = event_base_new();
tv.tv_sec = 2;
tv.tv_usec = 0;
evtimer_set(&ev, time_cb, NULL);
event_base_set(base, &ev);
event_add(&ev, &tv);
event_base_dispatch(base);
event_base_free(base);
}
go调用libevent实现定时器
把编译好的头文件和库文件放到go工程里
……
阅读全文