ARTS挑战打卡第六周

2023-11-03

 打卡第六周,两个21天

01-Algorthm

———————   

leetcode-1302[Deepest Leaves Sum] https://leetcode.com/problems/deepest-leaves-sum

思路1:遍历树(PostOrder Traversal),计算最高高度,再次遍历树,根据找到的最高高度求和。(Runtime: 1 ms Memory Usage: 41.5 MB)

思路2:遍历树(PreOrder Traversal),一次遍历,计算高度的同时求和。当遇到叶子节点时,判断当前高度是否大于等于最高高度。如果是,就可能要更新最高高度或者求和(Runtime: 0 ms Memory Usage: 41.7 MB)

02-Review

——————

[Why do we need distributed systems?] https://brooker.co.za/blog/2020/01/02/why-distributed.html

描述需要分布式系统的原因,在某个时间单机很稳定,不代表就不需要分布式系统了,分布式系统主要解决:

1、提供更好的可用性

主要还是解决单点故障,比如单台机器的性能有限,平均失败率受硬件影响、机器挂了恢复时间过长(Time To Recovery)

2、提高系统的耐用性

跟可用性类似,系统提供多份备份的数据/软件,在某一个节点失败的时候系统还有其他节点可以服务。

3、提高系统可扩展性

有了可用性和耐用性后,系统的扩展变得更加方便。但是对于有状态的系统,状态如何分布以及请求需要到哪个地方获取需要的状态,这两个在分布式系统领域中仍然是占比很高的问题。目前有很多开源的项目在研究,比如Raft协议可以保证分布式系统数据一致性。

4、提供更好的效率

整个分布式系统能做更多的事情,保持系统不断地运转,提高系统的效率。

没有银弹

没有任何一个分布式架构设计能解决所有的系统问题,在生产环节上构建分布式系统还是一件比较困难的事情,因为需要从可用性、可扩展性等去折中考虑如何设计或调整整个系统,以及不能影响到业务的正常使用,但是整体来说还是充满挑战的。

之前也写过一篇为什么需要分布式系统,显然这篇更细地描述了需要分布式系统的原因,赞。

03-Tip

——————

进程和线程会共享什么数据?堆和栈的区别是什么?

是进程和线程共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程初始化的时候分配,运行过程中也可以向系统要额外的堆,但是用完了要还给操作系统,要不然就是内存泄漏。

是每个线程独有的,保存其运行状态和局部自动变量的。栈在线程开始的时候初始化,每个线程的栈互相独立,因此,栈是线程安全的。操作系统在切换线程的时候会自动切换栈。栈空间不需要在高级语言里面显式的分配和释放。

进程占有的资源:地址空间,全局变量,打开的文件,子进程,信号量,账户信息

线程占有的资源:栈,寄存器,状态,程序计数器

进程是操作系统进行资源分配和调度的一个独立单位,不会共享资源,通过进程间通信共享资源,而线程可以共享部分资源,独自占有的资源不共享。

线程共享的数据包括:

  1. 进程代码段

  2. 进程的公有数据

04-Share

—————

Blog-Raft探索历程-Part1(见第二篇推送)

原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

如果本文对你有帮助,请点个赞吧,谢谢

更多精彩内容,请关注个人公众号。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARTS挑战打卡第六周 的相关文章

  • 「第六篇」对于电赛,我们应该看重什么?

    这几天更新了一些关于电赛的帖子 有设计方案 也有一些经验贴 大家可以在下面的链接找到 第一篇 大学生电子设计竞赛 等你来提问 第二篇 全国一等奖 经验帖 第三篇 全国电子设计竞赛 这些你必须知道的比赛细节 文末附上近十年电赛题目下载 第四篇
  • 【学习】对于AndroidStudio 中 Local History还原文件的理解

    1 理解结果 2 理解过程 2016年7月21日 星期四 因为很少使用AS的LocalHistory 所以对LocalHistory的不怎么理解 平时也就是拿来看看旧的代码 但是今天在使用LocalHistory的时候出了一个问题 就是在P
  • 一键自动状态机复用

    一键自动状态机复用 代码块 using System Collections Generic using System IO using UnityEditor using UnityEditor Animations using Unit
  • quartz报错Couldn’t obtain triggers for job:connection closed

    运行环境 springboot2 1 1 quarz2 3 0 jdk8 war包运行在tomcat9 11 00 57 624 http nio 8082 exec 2 ERROR c k f w e GlobalExceptionHan
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • Hexo搭建教程

    小白搭建教程 逢山开路 遇水架桥 亲测有效 在搭建过程中遇到问题也可以看看我这篇博客 或许有相似的问题 我这里遇到并解决的问题是 npm命令报错 没有权限 hexo g命令报错 duplicated mapping key hexo d命令
  • PC软件崩溃定位方式-windbg

    本篇适用于WINDOWS的C C 编译的程序分析 不适用于C java程序分析 windbg是微软的工具 可以去微软官方搜索下载 该工具可以调试exe 也可以导出收集dmp文件 用于后续分析 当前方式主要应用于启动的瞬间崩溃 分析步骤 启动
  • Python实现字符串分隔(华为机试)

    目录 题目描述 题目分析 测试用例 代码 传送门 题目描述 连续输入两组字符串 请按长度为8拆分每个字符串后输出新的字符数组 长度不是8整数倍的字符数组请在后面补0 输入 输出示例 输入 abc 123456789 输出 abc00000
  • 点击按钮时触发防抖

    当在React中点击按钮时触发防抖 并传递一个ID作为参数 你可以使用useRef和useCallback钩子来实现 import React useState useRef useCallback from react const But
  • 802.11 帧格式及类型

    1 帧格式 下面是802 11帧的组成结构 帧总寻此结构 从上面的结构可以知道 前俩个字节为 帧控制字段 控制字段的前2bit节为 协议类型 目前此值为 0 1 控制帧 用于竞争期间的握手通信和正向确认 结束非竞争期等 2 管理帧 主要用于
  • Altium designer10---PCB添加Logo

    安全之安全 security 博客目录导读 目录 1 生成bmp后缀的图片 画图打开 调整大小 生成bmp 2 生成PCB Logo PCB Logo Creator 图标生成器 Load加载 Convert转换 3 复制到所制作板子的PC
  • python基础八:函数

    1 函数简介 1 1语法 语法 def 函数名 形参1 形参2 形参3 代码块 函数名 调用函数 1 2介绍 函数是个对象 function 函数用来保存一些可执行的代码 在你需要的时候可以对这些语句进行多次调用 函数中保存的代码不会立即执
  • Sublime Text 4 汉化 安装Install Package Mac 安装插件

    1 下载安装包Sublime Text 4 官网选择安装包下载 下载完成直接打开 下载应用程序 运行应用程序 2 Sublime Text 4 跳过 不需要 安装Install Package工具 Text 4 不需要安装Package工具
  • Description:Web server failed to start. Port 8080 was already in use.

    APPLICATION FAILED TO START Description Web server failed to start Port 8080 was already in use Action Identify and stop
  • 顺序表——简单实现(静态数组)

    实现基于静态数组的顺序表的以下基本操作 1 初始化 2 尾插 3 尾删 4 头插 5 头删 6 读任意位置元素 7 修改任意位置元素 8 查找指定元素值的下标 9 在任意位置插入元素 实现环境 Centos6 5 vim编辑器 大体的思路
  • web前端字体居中_css文字居中怎么弄?

    CSS是一种定义样式结构如字体 颜色 位置等的语言 被用于描述网页上的信息格式化和现实的方式 下面我们来看一下css设置文字居中的方法 css可以通过为文字所在标签添加text align center样式使文字居中 text align属
  • git冲突在eclipse、idea、sourceTree上的解决方法

    一 使用eclipse时 情形一 用户1编辑A文件并提交 用户2未拉取最近代码也编辑A文件产生的冲突 用户2未提交本地仓库时 1 进入同步页面 注意 只有一个向下箭头表示未提交本地仓库 2 拉取远程文件 双击冲突文件减去编辑 将右侧代码合并
  • IT实习技能提升第一篇

    文章目录 前言 一 Git 1 基础配置 2 老板让去git上拉取代码 3 更改完代码后上推 二 QT使用步骤 1 注册QT账号挺有必要 2 同时运行两个项目 总结 前言 新入职的码农 嵌入式软件方向 提示 以下是本篇文章正文内容 下面案例
  • IOS小白入门指南

    加入ios 项目已经一个多月了 本篇文章主要介绍IOS开发入门的一些基础知识 帮助想学习iOS开发的人更有效率地学习 目录 需要的计算机基础 开发语言选择 IOS两种开发语言的异同 Objective C和swift的相同点 二者的不同点
  • 关于webview加载网页,返回后总是刷新页面问题解决

    最近用webview发现返回上个页面总是又自动刷新页面 我的需求是进入下页的时候不用缓存 而返回上个页面的时候不要刷新页面回到顶部 要保持在原来页面进入下页的位置 首先来了解一下webview加载网页的几个模式 即websetting中设置

随机推荐

  • 【AI视野·今日CV 计算机视觉论文速览 第211期】Wed, 2 Jun 2021

    AI视野 今日CS CV 计算机视觉论文速览 Wed 2 Jun 2021 Totally 63 papers 上期速览 更多精彩请移步主页 Interesting YOLOS You Only Look at One Sequence 纯
  • 冲击python二级——python的安装,IDLE的一般操作,PIP包管理使用,变量基础

    现在大部分的教程 都会要求直接安装Anaconda 和Pycharm 虽然pycharm是非常优秀的python IDE生产工具 但是对于新手来说配置比较繁琐 并不友好 而且国考计算机二级 只能用python自带的idle 用pip包管理安
  • 大数据——基于Spark Streaming的流数据处理和分析

    基于Spark Streaming的流数据处理和分析 流是什么 为什么需要流处理 流处理应用场景 如何进行流处理 Spark Streaming简介 Spark Streaming流数据处理架构 Spark Streaming内部工作流程
  • 实验室项目——连接mysql服务器报错(驱动版本不一致)

    mysql right syntax to use near OPTION SQL SELECT LIMIT 15 at line 1 问题描述 OPTION SQL SELECT LIMIT XXX 问题原因 项目使用的mysql驱动和m
  • 集线器、交换机和路由器(图解)

    一 物理层 使用 MAC 解决设备的身份证问题 1 通信的原始时代 很久很久之前 你不与任何其他电脑相连接 孤苦伶仃 直到有一天 你希望与另一台电脑 B 建立通信 于是你们各开了一个网口 用一根网线连接了起来 用一根网线连接起来怎么就能 通
  • UEFI/Legacy bios简介与grub安装教程

    目录 一 BIOS简介 二 UEFI与Legacy 启动模式简介 Legacy启动模式 UEFI启动模式 具体不同 三 grub安装 grub软件包的安装 grub源码下载 grub本地编译安装及使用 Ubuntu 环境下 四 参考 一 B
  • 华为机试-8.计算面积(绘图机器的绘图笔初始位置在原点)

    计算面积 绘图机器的绘图笔初始位i在原点 0 0 机器启动后其绘图笔按下面规则绘制直线 1 尝试沿着横向坐标轴正向绘制直线 直到给定的终点值E 2 期间可通过指令在纵坐标轴方向进行偏移 井同时恰制直线 偏移后按规则1绘制直线 指令的格式为X
  • chatgpt赋能python:Python输出中出现的None值:问题、解释和解决方案

    Python输出中出现的None值 问题 解释和解决方案 在Python编程中 经常会出现输出中包含None值的情况 这会给程序员带来一些困扰 因为它可能会在应用程序中导致错误或不正确的结果 在本篇文章中 我们将探寻这个问题的原因 介绍有关
  • Cascade EF-GAN: 局部聚焦渐进式面部表情编辑

    目前面部表情编辑存在的问题 生成性对抗网络 GAN 的最新进展表明 面部表情编辑有了显著的改进 然而 当前的方法仍然容易在表达密集型区域周围产生伪影和模糊 并且在处理大间隙表达转换 例如从愤怒到大笑的转换 时 经常引入不希望的重叠伪影 本文
  • Java中为什么只有值传递?

    开始之前 我们先来搞懂下面这两个概念 形参 实参 值传递 引用传递 形参 实参 方法的定义可能会用到 参数 有参的方法 参数在程序语言中分为 实参 实际参数 用于传递给函数 方法的参数 必须有确定的值 形参 形式参数 用于定义函数 方法 接
  • 面向对象三大基本特征及五大基本原则介绍

    目录 前言 一 面向过程和面向对象区别 二 面向对象的三大基本特征 封装 继承 多态 1 封装 2 继承 3 多态 三 面向对象的五大基本原则 1 单一职责原则 SRP 2 开放封闭原则 OCP 3 里氏替换原则 LSP 4 依赖倒置原则
  • python 如何将代码中的输入保存到txt里边

    一 在 print 前建立一个txt python3 f open print txt w print this is a txt file f f close python2 f open print txt w print gt gt
  • 摄影基础之---景深

    正在上传 重新上传取消 1 概述 先看两个例子 拍摄花 昆虫等照片时 背景拍的比较模糊 突出被拍物 但当拍摄纪念照 风景等照片时 却会把背景拍摄得和被拍对象一样清晰 这两者就是不同景深 前者为浅景深 拍摄聚焦到被拍物上 只能拍清一小段距离
  • 什么是MMU,MMU的作用

    I 什么是MMU MMU的作用 MMU是Memory Management Unit的缩写 针对各种CPU MMU是个可选的配件 MMU负责的是虚拟地址 O1663 O1664 物理地址的转换 提供硬件机制的内存访问授权 现 代的多用户多进
  • 类与对象(初级)

    目录 1 面向对象的初步认知 1 1 什么是面向对象 官方解释 1 2 面向对象与面向过程的对比 2 类 2 1 简单认识类 2 2 类的定义格式 3 类的实例化 3 1 什么是实例化 3 2 类和对象的说明 4 构造方法 构造器 4 1
  • 教妹学Java(十四):switch 语句详解

    大家好 我是沉默王二 一个和黄家驹一样身高 和刘德华一样颜值的程序员 本篇文章通过我和三妹对话的形式来谈一谈 switch 语句 教妹学 Java 没见过这么有趣的标题吧 语不惊人死不休 没错 本篇文章的标题就是这么酷炫 接受不了的同学就别
  • 论文阅读(21 CVPR):Adaptive Cross-Modal Prototypes for Cross-Domain Visual-Language Retrieval

    跨域 跨模态检索 Setting Unsupervised Domain Adaptation UDA sampled from joint distributions P v s s and Q v t t 在一个联合分布上进行采样 并非
  • 灰度重心法公式大全

    1 型心法 可理解为灰度重心法的特例 用于二值图像 2 灰度重心法 version 1 3 灰度重心法 version 2
  • 前端面试题集锦——HTML+CSS篇

    前端面试题集锦 HTML篇 1 你是怎么理解 HTML 语义化 1 HTML的语义化就是从代码层次表达人的想法 思路 同时描绘出网站页面的结构 因为页面不止是给人看的 机器也要看 2 网页结构清晰更方便开发维护 html语义化就是规定一些h
  • ARTS挑战打卡第六周

    打卡第六周 两个21天 01 Algorthm leetcode 1302 Deepest Leaves Sum https leetcode com problems deepest leaves sum 思路1 遍历树 PostOrde