- 博客(9)
- 收藏
- 关注
原创 非公开算法加密文件
我们都知道现在基本上所有的加密算法都是公开的,也就是在一个算法和密文是公开的环境中去寻找明文。由于算法的复杂度很高,这导致大部分算法在有限的时间内是找不到明文的。这对小文件加密无疑是一个很好的方法,但是对于大文件来说这会消耗大量的时间和CPU的性能。为了可以更加高效的完成对大文件的加密我们可以不公开算法,即自己重新定义算法对文件加密。由于算法是不公开的,攻击者只能获得密文因而破译的难度也大大提升了。下面会介绍到我们的加密算法和加密过程以及遇到的问题和解决方案。
2022-11-20 19:31:22
461
原创 线程池的应用
在多线程任务中为了更加有效的完成任务,我们在运行一个后台服务的时候希望更快的完成用户提交的任务。这里我们一般使用多线程的方式,当然我们可以一次性创建多个线程任务来了就直接分配,也可以当任务来的时候我们创建一个线程去完成对应的任务。无论哪种方式都是可以解决我们的问题,为了让程序更加有效,我们可以使用线程池的方式去完成。线程池会让我们的执行效率和空间利用率更高。以下是我们具体的实施方案。
2022-11-17 18:57:37
172
原创 条件变量(生产者消费者问题)
这里我们使用C语言多线程模拟生产者和消费者问题同时采用条件变量的方法解决该问题。当数据栈中没有数据时,消费者阻塞在条件变量上等待生产者通知其消费;而生产者则会不断的向数据栈中写入数据,并且每写入一次都会通知消费者进行消费。
2022-11-16 17:57:32
630
原创 互斥锁的使用
多线程问题中为了避免读取脏数据等问题的发生,在某一个函数需要对共享数据空间操作时需要引入锁的概念。即当某个操作要对文件读写时需要加锁以防止在操作期间其它函数对数据修改或者读取等导致获得脏数据的问题。
2022-11-16 16:53:46
135
原创 epoll反应堆模型
当监听到读事件后(之前的处理是直接读取数据并做业务处理然后写给客户端)将该文件描述符从红黑树上摘下后调用epoll_ctl函数去监听该文件描述的写事件重新挂上树(这里需要将自己定义的回调函数一起挂上树)监听其写事件等待epoll_wait返回即让该文件描述符可写,再调用write函数回写给客户端。最后需要将该文件描述符摘下红黑树,调用epoll_ctl添加该文件描述符的读事件挂回到红黑树。在网络编程中recv函数 read函数, send函数 write函数。
2022-11-15 16:22:08
155
原创 后端接口开发设计
MVC分别是Model、View和Controller,这三部分相互关联有助于将信息的处理和呈现分开。其大致工作流程如下: 用户在前端发起请求后通过后端服务器提交给controller处理然后交由model对数据进行处理最后由view渲染给用户。由于我们采用的前后端分离的开发模式,所以无需将处理好的数据再交给view而是直接返回给前端由前端开发者自行处理。这里我们介绍一下后端接口的开发模式,先附上一张后端程序的框架图: 这里run.py是我们主程序的入口文件,而app则是我们整个项目文件。
2022-11-14 15:32:30
579
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人