multi-thread epoll lib