# LinuxServer **Repository Path**: Aurora_Tsuki/linux-server ## Basic Information - **Project Name**: LinuxServer - **Description**: 在Linux下使用c++写的轻量化服务器 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-13 - **Last Updated**: 2024-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #环境要求 ubuntu 20.0.4 Mysql 8.0.36 gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0 g++ (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0 #硬件要求 8核16线程 线程: 半同步/半反应堆线程池 ------------------------------------------------------------------------------------------------ 使用一个工作队列完全解除了主线程和工作线程的耦合关系:主线程往工作队列中插入任务,工作线程通过竞争来取得任务并执行它。 > * 同步I/O模拟proactor模式 > * 半同步/半反应堆 > * 线程池 http连接处理类 ------------------------------------------------------------------------------------------------- 根据状态转移,通过主从状态机封装了http连接类。其中,主状态机在内部调用从状态机,从状态机将处理状态和数据传给主状态机 > * 客户端发出http连接请求 > * 从状态机读取数据,更新自身状态和接收数据,传给主状态机 > * 主状态机根据从状态机状态,更新自身状态,决定响应请求还是继续读取 time -------------------------------------------------------------------------------------------------- 由于非活跃连接占用了连接资源,严重影响服务器的性能,通过实现一个服务器定时器,处理这种非活跃连接,释放连接资源。利用alarm函数周期性地触发SIGALRM信号,该信号的信号处理函数利用管道通知主循环执行定时器链表上的定时任务. > * 统一事件源 > * 基于升序链表的定时器 > * 处理非活动连接