project问题
文章平均质量分 78
BearPot
你太容易因为别人优秀而焦虑 你需要的是平静的把自己的事做好
展开
-
ubuntu 20.04安装Protobuf
GNU Wget(常常简称为wget)是一个网络上进行下载的简单而强大的自由软件, 其本身也是GNU计划的一部分。它的名字是"World Wide Web" 和 "Get"的结合, 同时也隐含了软件的主要功能。生成./configue,进行后续安装 (直接按照我下面的安装v3版本方便简单)没有./autogen.sh ,not found,执行下面命令。v3开头是自带的autogen.sh,不用安aotomake。v2开头的版本没有autogen.sh文件,下面就用wget下载v3版本的,示例。原创 2023-07-16 22:26:55 · 1388 阅读 · 0 评论 -
ubuntu20.04安装nginx一系列问题
当初做一个项目的时候给linux装nginx遇到了很多问题,当初边搞边记录,这两天翻看项目笔记的时候找出来了,就把这一部分分享出来给大家看看。原创 2023-02-27 20:10:33 · 581 阅读 · 0 评论 -
c++11 json解析库nlohmann/json.hpp
Json是一种轻量级的数据交换格式(也叫数据序列化方式)。Json采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 Json 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。json的方便:直观的语法整个代码由一个头文件组成 json.hpp,没有子项目,没有依赖关系,没有复杂的构建系统,使用起来非常方便使用 C++ 11 标准编写使用 json 像使用 STL 容器一样STL 和 json 容器之间可以相互转换。原创 2023-02-24 15:46:07 · 3553 阅读 · 5 评论 -
线程池框架
当threadpool析构执行到最后面释放锁的时候,因为用的都是一把锁,此时阻塞在锁的那个线程就拿到锁往下执行,但是会执行到notempty wait的地方,因为此时队列里线程还有他的存在,不空,但是析构函数已经走到最后面了,没人唤醒他,他就一直睡死在里面notempty wait这块了。一共实现了两版,都是支持fixed和cached模式的,半同步半异步的(生产者消费者模型,异步 提交任务,获取任务结果,用future类达到异步)1、自己实现Any类,用来接收任意函数,和传递参数。原创 2023-02-11 20:05:41 · 445 阅读 · 0 评论 -
Tipsaa
二级是小于128字节,调用。cond.wait 先解锁,在把他放进cond的等待队列里面,notify如果唤醒,就是把cond等待队列里面的唤醒到互斥锁mtx的等待队列里面,假如说是a打印的最后一个等于n的数字,那么a线程正常结束,释放资源,锁就没了,在等待队列里的bc就会从阻塞的while flg判断里出来往下走,打印101,102;顾名思义,就是比较悲观的锁,总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(原创 2023-01-29 20:01:45 · 126 阅读 · 0 评论 -
C++手撕连接池
用c++写一个数据库连接池数据库连接池是为了提高数据库连接的性能,进行连接复用对于复杂数据库进行大量引用的场景下就会出现访问瓶颈常见的两种解决方法就是:为了减少磁盘 I/O的次数,在数据库和服务器的应用中间加一层 缓存数据库(例如:Redis、Memcache);或者就是增加连接池,来减少高并发情况下大量 TCP三次握手、MySQL Server连接认证、MySQL Server关闭连接回收资源和TCP四次挥手 所耗费的性能。原创 2023-01-08 01:19:32 · 783 阅读 · 0 评论 -
简单的文件传输
linux下基于多线程和tcp去实现了一个模拟网盘,实现cs之间的下载互传大文件,实现断点续传,秒传,利用md5进行校验,实时显示百分比整个项目是在Linux环境下用C语言开发的,基于TCP协议,采用多线程的socket通信方式。普通上传和秒传:客户端会先计算文件的MD5值发送给服务器,服务器会从自己的md5文件中查找有没有该文件的md5值存在,如果存在,则会发送提示给客户端表明服务器端已经存在该文件,进行秒传;如果不存在则进行普通上传。校验:利用md5值去比对下载和断点续传:客户端和服务器都会首先尝试打开原创 2022-12-05 17:27:38 · 1867 阅读 · 0 评论 -
文件的压缩解压缩
把文件里的字符转成二进制“abcdefgh”这一串字符每个字符都占8个比特,把a弄成哈夫曼编码例如“11111”,不过这样也是个字符串,每个'1'字符都是8bit,等于没压缩反而大了,关键点就是把这个"1"字符8bit转成二进制里面的1,这样8bit->成了1bit,压缩成功对于文本文件效率还行13%~17%,图片视频音频二进制的文件效率不太高构建哈夫曼树,利用哈夫曼编码我就不对哈夫曼树和哈夫曼编码的结构做解释了,对于最上面俩关于文件操作的结构说明一下为什么KING=256?2的8次方。原创 2023-01-14 14:11:52 · 1914 阅读 · 0 评论