class SubReactorThread(Thread): def __init__(self, name, common_conn_que): Thread.__init__(self) self.name = name self.common_conn_que = common_conn_que self.__loop = EventLoop(self.get_new_conn, self.get_conn, self.remove_conn) self.__fd_to_conns = {} def get_new_conn(self): new_conn = self.common_conn_que.get(1) new_conn.set_loop(self.__loop) self.__fd_to_conns[new_conn.get_fd()] = new_conn return new_conn def wake_up_loop(self): """ 唤醒loop去添加新连接的事件描述符 :return: """ self.__loop.wake_up_self(flag=Flag.ADD_NEW_CONN_EVENT) pass def get_conn(self, fd): return self.__fd_to_conns[fd] def remove_conn(self, fd): del self.__fd_to_conns[fd] def run(self): logger.simple_log('正在运做') self.__loop.loop() def stop(self): self.__loop.un_loop() def get_conn_count(self): return len(self.__fd_to_conns.keys())