- 博客(297)
- 资源 (2)
- 收藏
- 关注

原创 寻路算法——A*算法详解并附带实现代码
一、前言之前在做rpg游戏的时候实体移动用的是A*算法,那时候没有去研究A*算法原理,前天看了一篇博客介绍A*算法,按照自己的理解记录一下A*算法。参考:https://blog.youkuaiyun.com/nie2314550441/article/details/106673966https://zhuanlan.zhihu.com/p/23199073二、应用场景一副地图中有坐标A和B,需要找到一条路径(如果有的话)能从A到B,地图中可能有河流或墙壁不能直接穿过,我们需要怎样找到这条路.
2020-06-13 16:10:43
43148
37
原创 shell使用汇总
Shell俗称壳程序,是一种由C语言编写的用于和操作系统交互的命令解析器软件。它用来接收用户输入命令,然后调用相应的应用程序。Shell 是一种脚本语言,常见的 Shell 脚本解释器有 bash、sh、csh、ash、ksh、tcsh、zsh等几种。单引号:单引号里面是什么就输出什么;双引号:输出时会先解析里面的变量和命令;反引号:动态变量,可根据命令执行将结果直接付给定义的变量。variable=value # 普通变量:不包含任何空白符(例如空格、Tab缩进等)
2023-03-18 23:34:43
873
原创 linux常用命令汇总
RTC是电脑内建的硬件时间,执行这项指令可以显示现在时刻,调整硬件时钟的时间,将系统时间设成与硬件时钟之时间一致,或是把系统时间回存到硬件时钟。与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,而不是某个分区。gzip命令的英文是“GNUzip”,是常用来压缩文件的工具,gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。执行last命令时,它会读取/var/log目录下名称为wtmp的文件,并把该文件记录的登录系统或终端的用户名单全部显示出来。
2023-03-15 00:27:08
622
原创 正确清理mysql-bin
mysql 启动失败:ERROR! The server quit without updating PID file正确清理 mysql-bin
2023-01-19 14:33:10
6186
原创 CMakeLists.txt实例和语法介绍
帮助文档1. 官方文档一、实例1. 实例介绍构建一个简单的加减法运算,需要调用静态库和动态库的实例。将add编译为静态库,sub编译为动态库。目录架构:-->$ tree -LF 2 ././|-- add/| |-- add_build.sh*| |-- add.cpp| |-- add.h| |-- build/| `-- CMakeLists.txt|-- CMakeLists.txt|-- main_build.sh*|-- main.cpp
2022-05-17 23:37:15
642
原创 艾森豪威尔矩阵
关键词:如何做决策1. 在软件系统中运用一下摘抄自《架构整洁之道》 美国前总统艾森豪威尔的紧急/重要矩阵(参见下图),面对这个矩阵,艾森豪威尔曾说道: 我有两种难题:紧急的和重要的,而紧急的难题永远是不重要的,重要的难题永远是不紧急的。虽然老调重弹,但其中的道理依然成立。确实,紧急的事情常常没那么重要,而重要的事情则似乎永远也排不上优先级软件系统的第一个价值维度:系统行为,是紧急的,但是并不总是特别重要。软件系统的第二个价值维度:系统架构,是重要的,但是并不总是特别紧急。2. .
2022-05-16 13:02:43
2546
原创 分布式事务之SAGA案例
1. 分布式事务 在前面文章《分布式事务》中介绍了几种分布式事务,其中Saga介绍了相关的概念,接下来介绍Saga使用案例,案例来源《微服务架构设计模式》。2. 案例需求分析2.1 一个成功的订单创建流程 实现餐馆系统中的创建订单createOrder()操作。这个操作必须验证消费者是否满足下订单的相关条件、验证订单内容、完成消费者的信用卡授权,以及在数据库中创建Order。一个成功的订单创建流程:创建一个待处理订单;验证订单消费者可以下单;创建后厨工单;对消费者提供的信用卡进行授权操
2022-05-03 14:16:39
2137
原创 分布式事务
1. 什么是分布式事务1.1 事务是什么 在介绍分布式事务之前,我们首先来看一下什么是事务。事务(Transaction)提供一种机制,将包含一系列操作的工作序列纳入到一个不可分割的执行单元。只有所有操作均被正确执行才能提交事务;任意一个操作失败都会导致整个事务回滚(Rollback)到之前状态,即所有操作均被取消。简单来说,事务提供了一种机制,使得工作要么全部都不做,要么完全被执行,即 all or nothing。 通常情况下,我们所说的事务指的都是本地事务,也就是在单机上的事务。而事务具备四
2022-04-30 22:42:10
453
原创 幂等性设计
1. 什么是幕等 幂等是一个数学上的概念,它的含义是多次执行同一个操作和执行一次操作,最终得到的结果是相同的。 数学表达:f(x) = f(f(x))。例子:比如,男生和女生吵架,女生抓住一个点不放,传递“你不在乎我了吗?”(生产消息)的信息。那么当多次抱怨“你不在乎我了吗?”的时候(多次生产相同消息),她不知道的是,男生的耳朵(消息处理)会自动把 N 多次的信息屏蔽,就像只听到一次一样,这就是幂等性。 可以这么理解“幂等”:一件事无论做多少次都和做一次产生的结果是一样的,那么这件事儿就具有幂等
2022-04-29 23:24:29
738
原创 共识算法Paxos
1. 背景 Paxos算法是Lamport宗师提出的一种基于消息传递的分布式一致性算法,使其获得2013年图灵奖。 Paxos由Lamport于1998年在《The Part-Time Parliament》论文中首次公开,最初的描述使用希腊的一个小岛Paxos作为比喻,描述了Paxos小岛中通过决议的流程,并以此命名这个算法,但是这个描述理解起来比较有挑战性。后来在2001年,Lamport觉得同行不能理解他的幽默感,于是重新发表了朴实的算法描述版本《Paxos Made Simple》。 自
2022-04-24 17:57:07
7131
原创 共识算法论文——Paxos Made Simple
基础概念业界一般将 Lamport 论文里最初提出的分布式算法称之为 Basic Paxos,这是 Paxos 最基础的算法思想。Basic Paxos 算法的最终目标是通过严谨和可靠的流程来使得集群基于某个提案(Proposal)达到最终的共识。以下是该论文中涉及的一些概念:value:提案值,是一个抽象的概念,这里不能把它简单的理解为数值。而应该理解为对某一数据或数据库某一行的某一列的一系列操作。number:提案编号,全局唯一,单调递增。proposal:集群需要达成共识的提案,拥有 nu
2022-04-23 22:10:07
5595
原创 BASC理论
1. BASE理论概述 BASE理论源于eBay的架构师Dan Pritchett对大规模分布式系统的实践总结,BASE理论是对CAP理论的延伸,其核心思想是即使无法做到强一致性(CAP中的C),但应用可以采用合适的方式达到最终一致性。 BASE是指基本可用、软状态和最终一致性。BASE模式三元素:BA: Basically Available,基本可用。S: Soft State,软状态,状态可以在一段时间内不同步。(过渡状态)E: Eventually Consistent,最终
2022-04-16 15:22:14
4082
原创 三个一学习方法
1. 三个一学习方法概述一种思维方式——生产者思维一个学习方法——费曼学习法一个学习技巧——生活化联想2. 生产者思维 与生产者思维对立的是“消费者思维”。2.1 消费者 如果我们把形形色色的信息、知识、原理、理论看作是商品的话。查看和学习这些“商品”的为消费者,制作“商品”的为生产者。 商品的消费是单向而被动的,好比我们刷抖音、听收音机、看视频、看书,我们接受到的都是别提前制作好的节目。无论节目设计与制作多么地精良,作为消费者,我们能够消化和吸收程度总是有限的。2.2 生产者
2022-04-16 11:34:55
4128
2
原创 CAP理论
1. 初识 CAP 理论 CAP 理论是加州理工大学伯克利分校的 Eric Brewer 教授在 2000 年 7 月的 ACM PODC 会议上首次提出的,它是 Eric Brewer 在 Inktomi 期间研发搜索引擎、分布式 Web 缓存时得出的关于数据一致性( C:Consistency )、服务可用性( A:Availability )、分区容错性( P:Partition-tolerance )的一个著名猜想:It is impossible for a web service to p
2022-04-09 23:54:47
3034
原创 迭代器偏移——advance
1. 场景业务场景使用unordered_map,每次从指定位置n(n不大于unordered_map长度)开始往后遍历。由于unordered_map没有operator+=不能像vector一样通过+=偏移到指定位置。advance可以将迭代器偏移到n个位置。本文简单探究一下advance不同迭代器实现过程是怎样,由于advance实现依赖迭代器类型,本文还会简单介绍一下iterator_category。2. advance 用法介绍http://www.cplusplus.com/refer
2021-08-15 11:15:45
1494
转载 计算机网络(自顶向下方法)学习笔记
目录 第一章 计算机网络和因特网1.1 什么是因特网1.1.1 组成描述1.1.2 服务描述1.1.3 协议1.2 网络的边缘1.2.1 接入网1.2.2 物理媒体1.3 网络核心1.3.1 分组交换1.3.2 电路交换1.3.3 分组交换和电路交换的对比1.3.4 网络的网络1.4 分组交换中的时延、丢包、吞吐量1.4.1 分组交换网中的时延概述1.4.2 排队时延和丢包...
2020-08-30 10:25:53
4221
2
转载 Epoll的本质(内部实现原理)
本文主体转自https://blog.youkuaiyun.com/songchuwang1868/article/details/89877739#%E4%B8%80%E3%80%81%E4%BB%8E%E7%BD%91%E5%8D%A1%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%E8%AF%B4%E8%B5%B7从事服务端开发,少不了要接触网络编程。epoll作为linux下高性能网络服务器的必备技术至关重要,nginx、redis、skynet和大部分游戏服务器都使用到这一多路复
2020-08-24 09:32:42
558
转载 MySQL数据库面试题(2020最新版)
原文https://blog.youkuaiyun.com/ThinkWon/article/details/104778621#BB_555文章目录 数据库基础知识 为什么要使用数据库 什么是SQL? 什么是MySQL? 数据库三大范式是什么 mysql有关权限的表都有哪几个 MySQL的binlog有有几种录入格式?分别有什么区别? 数据类型 mysql有哪些数据类型 引擎 MySQL存储引擎MyISAM与InnoDB区别 MyISA.
2020-08-20 08:35:43
1335
原创 C++ 多态与虚函数表(五)拓展—— 对象大小
一、前言前面文章中分析了对象内存布局,对象大小已经不难理解了,这里集中总结一下。个人笔记,不保证严谨和正确☺,如有错误还望指出!《C++ 多态与虚函数表(一)—— 单继承》《C++ 多态与虚函数表(二)—— 多继承》《C++ 多态与虚函数表(三)—— 重复继承》《C++ 多态与虚函数表(四)—— 虚继承》《C++ 多态与虚函数表(五)拓展—— 对象大小》二、实例代码2.1 代码运行环境 64位#include<iostream>#incl.
2020-08-16 16:51:16
374
原创 C++ 多态与虚函数表(四)—— 虚继承
一、前言个人笔记,不保证严谨和正确☺,如有错误还望指出!《C++ 多态与虚函数表(一)—— 单继承》《C++ 多态与虚函数表(二)—— 多继承》《C++ 多态与虚函数表(三)—— 重复继承》《C++ 多态与虚函数表(四)—— 虚继承》《C++ 多态与虚函数表(五)拓展—— 对象大小》二、单虚继承Base1只有一层继承关系且为虚继承,只是用于测试,实际工作中不会这么样。2.1 类定义class Base{public: long long ibase.
2020-08-16 16:46:59
386
原创 C++ 多态与虚函数表(三)—— 重复继承
一、前言个人笔记,不保证严谨和正确☺,如有错误还望指出!《C++ 多态与虚函数表(一)—— 单继承》《C++ 多态与虚函数表(二)—— 多继承》《C++ 多态与虚函数表(三)—— 重复继承》《C++ 多态与虚函数表(四)—— 虚继承》《C++ 多态与虚函数表(五)拓展—— 对象大小》二、重复继承2.1 类定义class Base{public: long long ibase; Base ():ibase (10) {} virtu.
2020-08-16 16:35:44
463
原创 C++ 多态与虚函数表(二)—— 多继承
一、前言个人笔记,不保证严谨和正确☺,如有错误还望指出!《C++ 多态与虚函数表(一)—— 单继承》《C++ 多态与虚函数表(二)—— 多继承》《C++ 多态与虚函数表(三)—— 重复继承》《C++ 多态与虚函数表(四)—— 虚继承》《C++ 多态与虚函数表(五)拓展—— 对象大小》二、多继承2.1 类定义class Base1 {public: long long ibase1; Base1 ():ibase1 (10) {} vir.
2020-08-16 16:28:35
437
原创 C++ 多态与虚函数表(一)—— 单继承
一、前言个人笔记,不保证严谨和正确☺,如有错误还望指出!《C++ 多态与虚函数表(一)—— 单继承》《C++ 多态与虚函数表(二)—— 多继承》《C++ 多态与虚函数表(三)—— 重复继承》《C++ 多态与虚函数表(四)—— 虚继承》《C++ 多态与虚函数表(五)拓展—— 对象大小》二、取地址class Base{public: long long value; virtual f();};typedef void(*ptrType)(vo.
2020-08-16 16:19:45
1708
原创 Makefile和GDB调试
陈皓专栏,不错的博客,学习学习:http://blog.youkuaiyun.com/haoel/Makefile(一,二,三,四,五,六,七,八,九,十,十一,十二,十三,十四)GDB调试程序(一,二,三,四,五,六,七)...
2020-08-14 09:07:33
196
64位进程调用32位DLL实例
2015-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人