自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 GIN学习笔记

GIN学习笔记一引用:路由是自定义url地址执行指定的函数,良好的路由定义可以对seo起到很好的效果。1.基本路由gin框架封装了http库,提供了GET POST PUT DELETE PATCH HEAD OPTIONS这些http请求方法。使用router.method()来绑定路由 func (group *RouterGroup) METHOD(relativePath string, handlers ...HandlerFunc) IRoutesrouter := gin.Def

2022-05-10 18:40:20 232

原创 进程的调度

进程的调度调度初探评价指标:周转时间=完成时间-到达时间先入先出FIFO简单易实现护航效应:一些耗时较少的潜在资源消费者被排在重量级消费者之后最短任务优先SJF对同时到达的情况是最优解对不同时到达的情况束手无策最短完成时间优先STCF向SJF中引入抢占,每当新任务到达时,先确定剩余工作和新工作中,谁的剩余时间最少,然后调度该工作新评价指标:响应时间=首次运行时间-到达时间应对分时系统交互性需要轮转RR在一个时间片内运行一个工作,然后切换到运行队列中的下一个任务,

2022-05-03 16:31:52 183

原创 WebServer面试问答

WebServer概览epoll ET模式(边缘触发模式)mysql数据库连接池线程池日志定时器Reactor模式http大端序小端序读写缓冲区大概流程主线程监听连接主线程让epoll监听活跃的文件描述符处理完之后开工作线程工作线程任务(读写是分开的,不一定是同一个线程操作)读写缓冲区是数据httpconn的,httpconn是一个类,一个用户实例,所以直接独立了。read客户端数据(用非阻塞IO)有个读缓冲,每个连接独享一个读和写缓冲,有个65K缓冲区,保证能一

2022-05-03 11:53:10 1759

原创 MatLab中符号对象的数据类型是,符号对象(Symbolic Object)的使用

MatLab中符号对象的数据类型是,符号对象(Symbolic Object)的使用符号对象是什么?符号对象是Matlab中一种特殊的数据类型, 其实质是“a data structure that stores a string representation of the symbol”, 即它存储的是字符串表示的符号表达式, 只是这些字符串对应的是数学运算法则。如果用whos 命令查询, 符号变量对应的类型显示的是“sym“, 这也是区分符号变量与数值变量的方法。操作这些对象的步骤, 先是Matla

2022-04-26 16:45:55 1974

原创 Git合并冲突——both modified解决

使用GitHub的时候,手欠在网页上修改了readme,然后今天在本地更新readme的时候又忘记了git pull先,然后就出现了merge conflict了,提示both modified那么这个时候,我们不要慌,想办法解决冲突就好了git mergetool调出合并工具回车使用工具,出现kdiff3图形界面,其中A区为修改前,B区为本地(local)版本库修改,C区为远程版本库(remote)信息,在最下方点击右键选择需要使用的版本库,修改后保存退出即可。这里就完成了c.

2022-04-21 21:22:11 11357

原创 Effective C++开发规范条款

Effective C++开发规范条款条款16 成对使用new和deletenew创建,delete删除new[]创建,delete[]删除条款30 了解inline的里里外外inline函数,对函数的每一个调用都用函数本体代替,调用不承受额外的开销,编译器对齐执行语境相关最优化。增加目标码大小,额外的换页行为,降低缓存命中率,效率损失。对虚函数进行inline无意义,虚函数是运行时确定,inline是在编译期替换编译器一般不对“通过函数指针进行调用”提供inline,是否inline取决于

2022-04-20 16:51:35 917

原创 操作系统——并发之锁

锁锁的基本思想锁就是一个变量,保存锁在某一时刻的状态,要么是可用的,要么是被占用的POSIX将锁称为互斥量mutexpthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;pthread_mutex_lock(&lock);...pthread_mutex_unlockj(&lock);允许使用不同锁来保护不同数据结构锁的实现需要硬件和操作系统的配合来实现一个可用的锁锁的评价提供互斥性公平性性能锁的实现控

2022-04-19 16:47:54 188

原创 操作系统——常见并发问题

常见并发问题非死锁缺陷违反原子性即代码段本意是原子的,但是在执行中并没有强制实现原子性解决方法:给有需要的代码加锁违反顺序缺陷两个内存访问的预期顺序被打破了(即A应该在B之前执行,但是实际运行中却不是这个顺序)解决方法:通过加锁、条件变量以及状态变量配合来强制顺序执行死锁缺陷为什么发生死锁大型代码库里,组件之间会有复杂的依赖关系,必须仔细地避免循环依赖导致的死锁模块化封装,使得某些看起来没有关系的接口可能会导致死锁产生死锁的条件互斥:线程对于需要的资源的进行互斥的访问

2022-04-17 20:00:19 475

原创 C++新特性——Lambda表达式

Lambda表达式lambda的引入谓词谓词是一个可调用的表达式,其返回结果是可以用作条件的值分类一元谓词只能接受一个参数二元谓词只能接受两个参数为了在使用算法时能操作更多的参数,引入lambda介绍一个lambda表达式表示一个可调用的代码单元,可将其理解为一个未命名的内联函数[capture list] (parameter list) -> return type { function body };捕获列表可为空,表示不使用

2022-04-17 16:04:12 652

原创 十大排序算法

十大排序算法1、冒泡排序/* * 冒泡排序 * 比较交换相邻元素 * 时间复杂度O(n²) */class Bubble {public: void mysort(vector<int> &nums) { int n = nums.size(); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1

2022-04-16 23:44:29 573

原创 图搜索算法——Floyd、Dijkstra、Bellman-Ford、SPFA算法详解

最短路径问题以leetcode-743.网络延迟时间为例多源最短路径算法Floyd算法Floyd算法本质就是暴力搜索,时间复杂度O(n3)O(n^3)O(n3),一般采用邻接矩阵存图,基本步骤:遍历中间节点、遍历源节点、遍历目标节点、松弛操作。vector<vector<int>> graph(n + 1, vector<int>(n + 1, inf));// 初始化邻接矩阵for (int i = 1; i <= n; i++){ g

2022-04-12 14:56:15 650

原创 最短路径问题

图论——最短路径问题以leetcode-743.网络延迟时间为例多源最短路径算法Floyd算法Floyd算法本质就是暴力搜索,时间复杂度O(n3)O(n^3)O(n3),一般采用邻接矩阵存图,基本步骤:遍历中间节点、遍历源节点、遍历目标节点、松弛操作。vector<vector<int>> graph(n + 1, vector<int>(n + 1, inf));// 初始化邻接矩阵for (int i = 1; i <= n; i++){

2022-04-11 21:57:35 513

原创 图的基本算法——BFS、DFS、拓扑排序、强连通分支、最小生成树算法

图图的基本算法图的表示邻接矩阵邻接表BFS搜索在给定图G=(V,E)G=(V,E)G=(V,E)和一个特定的源顶点s的情况下,广度优先搜索系统的探索G中的边,以期“发现”可从s到达的所有顶点,并计算s到所有这些可达顶点之间的距离(即最少的边数)。该搜索算法同时还能生成一颗根为s、且包括所有s的可达顶点的广度优先树。广度优先搜索产生的广度优先树可能会有所不同,但由算法计算出来的距离d都是一样的。时间复杂度 O(V+E)O(V+E)O(V+E)对于图,广度优先搜索可以得到从已知源顶点到每

2022-04-10 20:26:23 2095

原创 设计模式之7大设计原则

设计模式7个设计原则单一职责原则就一个类而言,应该仅有一个引起它变化的原因单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关实践经验。e.g. 手机与相机都可以拍照,但是手机还可与打电话、听音乐,因此手机职责过多,在维护等方面会比单一职责困难得多开闭原则软件实体(类、模块、函数等)应该可以可扩展,但是不可以修改此原则是面向对象设计的核心,遵循这个原则可以带来很多好处,当出现

2022-04-10 15:38:13 109 1

原创 Linux环境编程之IO复用select、poll、epoll的区别

select、poll、epoll的区别

2022-04-10 15:32:16 679

原创 Ubuntu安装MySQL及使用小记

记录一下Ubuntu20.04安装mysql以及基本使用

2022-04-10 14:51:05 920

原创 Ubuntu20.04安装ROS Noetic踩坑之旅

安装ROS之前特地安装了clash,可以自由访问外网资源,但是还是遇到一堆坑,记一下,以备不时之需首先按照ROS官网教程进行安装http://wiki.ros.org/noetic/installation/Ubuntu一切顺利直到开始下载资源,由于网络不稳定,下载时常会终端报错,重复下载命令即可sudo apt install ros-noetic-desktop-full --fix-missing直到下载到96%时,有十几个Ubuntu的包适中下不下来,一直报错连接失败.

2022-03-29 20:13:11 1669

原创 VMware安装Ubuntu20.04

因为上课要用到ROS,所以决定装一下Ubuntu虚拟机并安装ROS,本来是想在WSL里安装图形界面再安装ROS的,但是装好X4fce之后发现图形界面实在是抽象,想着干脆一点装个虚拟机得了。虽然自己电脑里躺着三年前装的Ubuntu16.04的双系统,但是每次开机都要选系统有点劝退,所以这一次直接在Windows下装个Ubuntu虚拟机,方便学习。这两天还是踩了不少坑的,所以写下来记录一下。话不多说,首先安装Vmware以及虚拟机,参考这个连接https://zhuanlan.zhihu.c.

2022-03-29 19:24:27 228

原创 卸载Windows下的WSL子系统

虽然 Linux 发行版可以通过 Microsoft Store 安装,但不能通过 Microsoft Store 卸载。不想玩了,或者玩腻了就考虑去卸载,给电脑节省点空间……

2022-03-28 16:45:25 25239

原创 阿里云服务器网络编程Socket报错bind:cannot assgin requested address的解决方法

最近在用之前活动买的阿里云服务器搞点玩具项目,先从游双大佬的《Linux高性能服务器编程》搞起,兴冲冲的码了一通书上的代码,一运行就报错:很奇怪啊,明明设置好了安全组,怎么会无法绑定呢?最后经过一波冲浪,发现这是阿里云的锅,它的网卡地址是内网地址,它自己会把内网地址与外网相互转换,所以说你要搞网络编程的话,ip地址得填服务器私网ip。公网ip和私网ip可以在阿里云实例列表里查看总结一下:用阿里云进行socket编程一定要注意:服务器端ip地址记得写私网ip,客户端访问时填公网

2022-03-06 21:34:19 499 1

原创 Ubuntu 18.04 root启动vscode无反应的解决办法

执行以下:code --user-data-dir=~/.vscode --verbose查看报错信息:Running as root without --no-sandbox is not supported. See https://crbug.com/638180.因此最终执行命令 :code --user-data-dir=~/.vscode --no-sandbox后面遇到启动问题的小伙伴加个verbos选项看看什么错误吧...

2022-02-19 19:10:36 3113 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除