自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 树的前中后序 迭代写法——完全按照递归思维写。

最近在刷算法的时候刷到树的遍历的时候,有一道题引起了我的思考。Leecode 144. 二叉树的前序遍历,同样还有两道道类似的题:Leecode 94. 二叉树的中序遍历Leecode 145. 二叉树的后序遍历题意很简单,这三道题都是要求使用迭代的方式写得到这三种遍历方式的结果。题目不难,最开始想的是通过迭代进行模拟树的拓扑结构,先根再左再右,为了回到右节点需要一个栈进行存储右节点。(leecode上解题很多,常规的解法肯定不值得我专门写一篇博客来纪录一下)我在想,如何用迭代和栈的方式去模拟递

2020-09-10 22:08:57 306 2

翻译 《The Design of a Practical System for Fault-Tolerant Virtual Machines》——容错虚拟机,中文翻译

我们实现了一个商业企业级系统,用于提供容错虚拟机,该系统基于通过另一台服务器上的备份虚拟机复制主虚拟机(VM)执行的方法。 我们在VMware vSphere 4.0中设计了一个完整的系统,该系统易于使用,运行在普通服务器上,通常实际应用程序的性能降低不到10%。 此外,对于几个实际应用程序,保持主VM和辅助VM同步执行所需的数据带宽小于20 Mbit/s,这允许在更长的距离上实现容错。 一个易于使用的商业系统,在失败后自动恢复冗余,除了复制VM执行外,还需要许多其他组件。 我们设计并实现了这些额外的组件,

2020-03-13 16:34:48 2862 1

原创 MIT6.824 分布式系统之lab1 mapReduce

本篇博文记录了我的lab1实现原理,思路以及答案。希望对大家有所帮助,也希望大家踊跃的指出错误和欢迎提出更好的思路算法。共勉。前言首先在做本实验之前,必须先阅读mapReduce论文《MapReduce: Simplified Data Processing on Large Cluster 》能看懂英文原版的当然看英文最好,看不懂的网上也有很多翻译版,大家自行查阅。可能翻译版都是靠翻译软...

2020-02-17 21:39:08 1051 3

原创 MIT6.824 分布式系统 资料汇总

最近开始自学MIT6.824 分布式系统,为自己和网友提供方便,我打算做一个资料汇总的贴。Golang 专栏由于此门课程是Golang写的 所以必须先要学会Golang语言,有c++,java等基础的同学学这个应该很快,一个周之内能完成入门此网站有很多Go语言的基础教学,配套了很多实验,而且是免费的,很不错https://www.imooc.com/learn/345编程软件IDE有...

2020-02-17 19:37:55 3729

原创 排序算法总结篇二——进阶排序,快速排序和归并排序

快速排序快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法(敲黑板,这个很重要)也确实实用,因此很多软件公司的笔试面试都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。所谓分治法,就是把一个数组分为两个或多个数组,然后分别进行排序,举个简单的例子,假设有一个数组 【2,1, 4,3】,我把它分为【...

2019-12-10 21:46:48 223

原创 排序算法总结篇一:基础版排序——选择,插入,冒泡

选择排序选择排序是一个非常简单且直观的算法,顾名思义,就是每次遍历数组,将其最小或最大(以下举例都是从小到大排序)的以依次放入已排好序的数组,再重复此操作。动画演示动画过程解释第一步遍历无序数组找到最小的数是2 将其与第一个数组交换(此时0-1即为已排序数组)第二步再次遍历无序数组,找到最小数字是3 ,与第二个数字交换(此时0-2位已排序数组)以此类推 最终得到一个0-n-1的排序...

2019-12-09 21:11:04 195

原创 剑指offer第二版-47.礼物的最大值(动态规划,广度优先遍历)C/C++版

问题描述在一个 m*n 的棋盘中的每一个格都放一个礼物,每个礼物都有一定的价值(价值大于0).你可以从棋盘的左上角开始拿各种里的礼物,并每次向左或者向下移动一格,直到到达棋盘的右下角。给定一个棋盘及上面个的礼物,请计算你最多能拿走多少价值的礼物?在这个棋盘中,按照(1,12,5,7,7,16,5)的顺序可以拿到总价值最大的礼物。解题思路1、动态规划思维对于这种路径问题,一般第一考虑...

2019-12-08 22:33:56 309

转载 Linux系统中添加第三方库文件路径的方法

库文件在链接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。但是,对于处于默认库搜索路径之外的库,就需要将库的位置添加到库的搜索路径之中。设置库文件的搜索路径有下列两种方式,可任选其一使用:在环境变量 ...

2019-11-26 21:25:57 2907 1

原创 跟我从零开始开始学glog (Google的C++日志库)

最近在写自己的网络库的时候用到了日志库,本来想自己从0开始写一个,想想还是算了,毕竟时间和精力是有限的,先会用别人的,站在巨人的肩膀上才能走的更远嘛。

2019-11-26 21:00:19 420

原创 记一次诡异的事件——fd有事件,poll不返回

问题描述:今天在写自己的网络库的时候发现了一个很诡异的问题。我的多线程模型的线程切换时,当IO线程有事件需要主线程处理,如新IO线程的建立,IO线程的销毁等工作,需要从IO线程切换到主线程处理。主线程主要负责监听LinstenFd的可读事件,已经连接好的客户端由单独的线程管理。太啰嗦了,直接看问题所在吧,总所周知,主线程中,当LinstenFd没有可读事件的时候是处于poll的阻塞状态的。我的...

2019-11-13 17:29:10 978

转载 muduo网络编程前序

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本...

2019-10-14 21:24:58 136

原创 Muduo网络库学习之Buffer读取与发送数据

Buffer 存在的意义Buffer是Tcp网络编程中必不可少的东西。为什么必须要有要有Buffer。举个简单的例子,先说输出buffer,假如服务器要向客户端发送100KB数据,受到了某些因素的影响,一次性只能发送80KB,那剩余的20KB怎么办,总不可能把它丢掉吧。这时候Buffer的作用就出来了,它将缓存没发送完的20KB数据(把数据按时间顺序存好,有点像队列,先入先出),然后再次注册so...

2019-10-13 20:34:12 407

原创 Muduo网络库学习笔记之:TcpServer接受新连接

本篇 博文主要讲muduo中三个半事件的新连接的建立。先来看一下流程图,看不懂?没关系,请听我一一道来:最前面两个EventLoop和Channel在我的前两篇博文里面已经讲的足够详细了,到目前为止都还看不懂的同学请移步前两篇博文复习一下。loop监听linsten套接字,当linsten套接字有可读事件的时候调用Channel的handleEvent()转而调用Acceptor的hand...

2019-10-12 20:19:13 283

原创 Muduo学习笔记之EventLoop巧妙的线程切换

从上面两篇博文可知,每个线程有且只有一个EventLoop对象,其中IO线程是老大,线程池里面的线程只负责处理某一个客户端的请求。那么,如何从非IO线程切换到IO线程呢?EventLoop类里面新增了一个RuninLoop()函数。如果用户在当前IO线程调用这个函数,回调会同步进行,如果用户在其他线程调用这个函数,cb(用户回调函数)会被假如IO线程的队列,IO线程将被唤醒来调用这个cb。这里我感...

2019-10-12 19:31:27 424

原创 Muduo 学习笔记之Reactor框架源码解析

在上一篇博文中介绍了muduo的总体框架,本篇博文将会介绍Reactor的实现原理以及源码解析。在看本篇博文之前请先看上一篇博文——Reactor框架总览https://blog.csdn.net/qq_40832456/article/details/101718179EventLoop事件循环。moduo的线程模型为one loop per thread,即每个线程只能有一个EventLo...

2019-10-11 21:24:36 245

原创 C++ muduo网络库 学习笔记之:Reactor框架总览

muduo之Reactor(反应堆)模式最近在看muduo的reactor模式,从中学到了很多东西,我打算把我学到的知识整理一下分享出来,对自己来说也是一种知识总结,对他人来说也是一种学习指南吧。Reactor模式总述我打算从后往前,从整体到细节的方式来讲述这一部分的内容,所以第一节就讲一下Reactor概述。反应堆设计模式(Reactor pattern)是一种为处理并发服务请求,并将请...

2019-09-29 21:46:35 993

原创 Muduo C++网络库学习笔记之 多线程服务器的使用场合与常用编程模型

单线程服务器常见编程模型在高性能的网络程序中,使用的最为广泛的恐怕要数“non-blocking IO+IO mutiplexing”这种模型了,既Reactor模式。Reactor的优点明显,编程不难,效率也不低,不仅可以用于读写 socket,连接的建立(connect/accpet)甚至DNS解析都可以用非阻塞方式进行,以提高并发量和吞吐量。多线程服务器常见编程模型one loop p...

2019-09-16 19:57:09 258

原创 操作系统——实验lab1 **超详细**实验报告

lab1 操作系统启动过程实验指导书:https://chyyuu.gitbooks.io/ucore_os_docs/content/lab1/lab1_1_goals.html实验中可能使用到的工具:https://chyyuu.gitbooks.io/ucore_os_docs/content/lab0/lab0_ref_ucore-tools.htmlucore源码以及参考答案...

2019-06-29 22:32:25 8154

原创 云计算学习历程之-备份服务(rsync)下

rsync守护进程企业实际应用1)守护进程多模块功能配置第一个里程碑: 编写配置信息创建多模块[root@backup ~]# vim /etc/rsyncd.conf……[nfsdata]comment = "nfsdata dir by oldboy"path = /backup/nfsdata[nfsbackup]comment = "nfsbackup dir by ol...

2019-05-05 22:16:37 114

原创 云计算学习历程之-备份服务(rsync)上

rsync介绍rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步,支持增量传输(只同步变化的数据新消息主要利用里quick check算法实现)同步原理:1)建立网络连接2)信息比对3)只将辩护熬多数据进行增量备份。运维的三大职责网站数据不流失...

2019-04-29 22:52:48 225 1

原创 linux 进程和信号

进程和信号1. 什么是进程unix标准把进程定义为:“一个其中运行着一个或者多个线程的地址空间和这些线程所需要的系统资源。”,非官方的来说——进程可以看作正在运行的程序。2. 进程的结构2.1 进程表Linux进程表就像一个数据结构,他把当前加载在内存中的所有进程的有关信息保存在一个表中,其中包括进程的PID、进程的状态、命令字符串和其他一些ps命令输出的各类信息。进程表的长度是有限...

2019-04-19 21:00:11 170

原创 云端专有网络构建与管理

计算机网络基础计算机网络概念计算机网络是指李勇地理上分散的具有独立功能的多个计算机及外部设备,通过通信线路和设备,在相应软件的支持下,实现了数据通信和资源共享的系统。七层网络和五层网络七层网络 OSI五层网络 TCP/IP七层网络和五层网络协议常用设备交换机工作在数据链路层,识别是MAC地址,MAC地址是物理地址,因此不能划分子网路由器...

2019-04-19 16:14:19 118

原创 云计算之弹性伸缩

案例1:2009年,第一次淘宝双十一活动,每秒订单只有400笔,支付达到极限每秒200笔。2015年淘宝双十一,每秒订单创建24万笔,支付达到了每秒18.59万笔。每秒订单提升了350倍,支付能力提升了430倍。从后台来看,每年淘宝在双十一这个时候,后台服务器的数量都要比平时运维要多三到四倍。来保障双十一活动,双十一活动结束后,假如不做处理,这批机器的利用率将大大降低,直到次年的双十一活动。...

2019-04-11 21:02:02 4811

原创 云数据库管理与迁移

一 云数据库简历与使用场景云数据库特点:用户按存储容量和宽带的需求付费云的可移植性可以将数据库从一个地方转移到另一个地方按需扩展高可用性云数据库与自建数据库对比云数据库的主要功能...

2019-04-01 20:18:02 230

原创 搭建网站运行环境

云上部署WordPress网站步骤:安装与服务器ECS安装和配置开发环境:Web服务器、数据库等部署WordPress网站:下载安装包、安装和配置WordPress1) 安装与服务器ECS略2)安装和配置开发环境:Web服务器、数据库等注意:我的服务器ECS 用的centos 7的操作系统 其他系统的可能命令不一样,读者也可以参考其他系统的安装资料2.1) 安装Web服务器...

2019-03-31 17:20:27 2900

原创 网站搭建类型,静态与动态网址的特性

网站的主要分类:网址主要包括静态网站和动态网站两种静态网站是指全部由HTML代码格式页面组成的网站,所有的内容都包括在网页文件中主要用到的技术包括HTML标记语言CSS样式表JavaScript脚本语言动态网站指出了要设计的网页外,还要通过数据库和编程序来进行架构的网站主要技术包括HTML标记语言CSS样式表JavaScript脚本语言服务器端脚本语言数据库静态...

2019-03-31 15:33:08 338

原创 阿里云大学 云计算学习历程之 服务器上安装 配置了apache 但不能通过公网地址访问

配置了apache 最后一步不能通过访问公网Ip访问Apache首页的原因:在网上查了很多资料 大部分是说是因为防火墙的问题,但是我刚买的服务器那里来的防火墙啊。最后才发现原来是阿里云服务器没有默认开启80端口应在 本实例安全组->配置规则->添加安全组规则 端口范围选择80/80 授权对象填写0.0.0.0/0如上图所示 就可以通过公网IP地址访问apache首页了...

2019-03-30 16:05:24 195

原创 云计算学习历程

最近花了1000多在阿里云大学上买了云计算的课程,打算认真学一下云计算。接下来将会给大家分享学习中遇到的问题以及解决办法还有学习心得。

2019-03-30 15:57:29 175

原创 虚拟机centos无法联网,提示 Device not managed by NetworkManager or unavailable [失败]

楼主也是一个新手,刚开始学习linux,把遇到的问题以及解决办法分享出来,希望能够互勉。网上找了很多帖子,大部分都是教怎么修改/etc/sysconfig/network-scprits/ifcfg-eth0这个文件,但我试过了没有任何作用。在service network restart的时候提示 Device not managed by NetworkManager or unavaila...

2018-10-06 21:30:24 3054 6

原创 Linux中怎么删除swp文件

Linux vi 非正常退出都会在相应的位置保留.swp文件。并且这是隐藏文件,看不见每次再vi 的时候就会出现告警信息并且导致无法编辑。注意swp文件是隐藏的 可以用ls -a 或者ls -al查看。怎么删除呢? rm .XXX.swp。注意有个小数点. 不然会提示找不到文件。...

2018-09-28 22:00:31 6765

如何使用Google日志记录库(glog).html

glog官方帮助文档中文版。Google glog是一个实现应用程序级日志记录的库。该库提供基于C ++样式的流和各种帮助程序宏的日志记录API。您可以通过简单地将内容流式传输到LOG()来记录消息,Google glog定义了一系列宏,可简化许多常见的日志记录任务。您可以按严重性级别记录消息,从命令行控制日志记录行为,基于条件记录日志,在不满足预期条件时中止程序,引入自己的详细日志记录级别等等。本文档介绍了glog支持的功能。请注意,本文档并未描述该库中的所有功能,而是最有用的功能。如果要查找较少的常用功能,请检查目录下的头文件src/glog。

2019-11-26

空空如也

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

TA关注的人

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