Linux C++ 实战项目 文本输入助手
github源码
:https://github.com/Worthy-Wang/SpellCorrect
项目简介
这是一款用户输入助手的服务器,由于本人只写了后台的程序,所以用百度搜索作为示例,如果想要自己写一个页面,只需要修改最后发送的json格式即可。:
项目架构
1.首先搭建好线程池,启动线程时都在等待任务队列出任务
2.启动封装好的服务器程序,当客户端发来请求时,将此请求封装成一个任务,加入任务队列,让子线程去完成该任务
3.完成对于查询词业务逻辑的设计
项目流程
离线版本
- 创建词典与索引文件
技术亮点:开源cppjieba分词库
,正则表达式
,UTF-8中英文编码处理
,文件流字符串流操作
,Unix目录操作
,单例模式(饿汉)
,最小编辑距离算法
,优先级队列
在线部分
- 搭建线程池框架
技术亮点:基于对象线程池设计
,Posix线程类,互斥锁,条件变量
,任务队列
,自动加解锁类
,子线程安全退出机制
,回调函数
,智能指针unique_ptr
- 搭建服务器框架
技术亮点:基于对象服务器设计
,回调函数
,socket网络编程
,IO多路复用epoll
,eventfd(IO线程与计算线程分离)
,客户端安全退出机制
,智能指针shared_ptr
- 搭建搜索引擎框架
技术亮点:内存Cache与磁盘Cache
,timerfd定时器(全局Cache更新)
,缓存淘汰策略LRU算法
,开源库jsoncpp