Go语言中文网 为您找到相关结果 62

韩顺平 尚硅谷 Array题答案(Golang)

image.png image.png image.png image.png 作业1答案 package main import ( "fmt" "math/rand" "time" ) func reversePrint(arr [10]int) { _len := len(arr) for i := 0; i < _len/2; i++ { arr[i], arr[_len-1-i] = arr[_len-1-i], arr[i] } fmt.Println(arr) } func main() { var arr [10]int // 随机生成10个1-100的整数 rand.Seed(int64(time.Now().Nanosecond())) for i := 0; i < l...阅读全文

博文 2020-04-18 17:32:49 FredricZhu

韩顺平 尚硅谷channel题(golang)

作业1 image.png 作业2 image.png 作业1代码 package main import ( "fmt" ) type Result struct { N int Sum int } func MakeNumChan(ch chan int) { for i := 1; i <= 2000; i++ { ch <- i } close(ch) } func GetSum(n int, ch chan Result) { sum := 0 for i := 1; i <= n; i++ { sum += i } res := Result{ N: n, Sum: sum, } ch <- res } func GetSumRange(numCh chan int, start...阅读全文

博文 2020-04-29 15:35:36 FredricZhu

聊一聊堆、栈与Go语言的指针

堆、栈与指针 前言 堆、栈在计算机领域是亘古不变的热门话题,归根结底它们和编程语言无关,都是操作系统层面的内存划分,后面尝试简单地拆开这几个概念,谈谈我对它们的理解。 栈 每个函数中每个值在栈中都是独占的,不能在其他栈中被访问。每个方法片(function frame)都有一个自己的独享栈,这个栈的生命周期随着方法开始结束诞生与消逝,在方法结束时候会被释放掉,较之于堆,栈的优势是比较轻量级,随用随弃,存活期跟随着函数。 堆 通俗的讲,假如说栈是各个函数的一栋私人住宅,堆就是一个大型的人民广场,它可以被共享。堆作为一个全局访问块,它的空间由GC(拆迁大队)管理作。 The heap is not self cleaning like stacks, so there is a bigger c...阅读全文

博文 2020-01-15 12:34:22 pixelpig

Kubernetes 优雅停止Pod

文:https://i4t.com/4424.html 首先我们先简单的分析一下"优雅的停止Pod" 优雅停止(Graceful shutdown)这个说法来自于操作系统,比如我们windows关机系统首先会退出软件然后一步步到达关机,而相对的就是硬终止(Hard shutdown),简单的理解就是直接拔电源 到了微服务中,网关会把流量分配给每个Pod节点上,比如我们上线更新Pod的时候 如果我们直接将Pod杀死,那这部分流量就无法得到正确处理,会影响部分用户,通常来说网关或者注册中心会将我们的服务保持一个心跳,过了心跳超时之后会自动摘除我们的服务,但是有一个问题就是超时时间可能是30秒也可能是60秒,虽然不会影响我们的系统,但是会产生用户轻微抖动。 如果我们在停止前执行一条命令,通知网关或...阅读全文

博文 2019-11-13 18:02:49 abcdocker

go学习笔记-goroutine竞争状态

如果两个或者多个goroutine在没有相互同步状态的情况下同时访问某个资源,并且同时对这个资源进行读写的时候,对于这个资源就处于相互竞争状态(race candition)。下面来看一个相互竞争的例子。 var number int var wait sync.WaitGroup func main() { wait.Add(2) go updateNumber(20000)//加20000 go updateNumber(30000)//加30000 wait.Wait() fmt.Println(number) } func updateNumber(addNumber int) { for i:=0;i阅读全文

博文 2020-01-07 22:32:42 旧梦发癫

MySQL数据库的常用操作

学习python少不了和数据库打交道,常见的数据库有:MySQL、SQLite、MongoDB、Redis等,这里主要介绍一下MySQL数据库的基本操作。 数据库听起来感觉好高大上,当你接触之后有种恍然大悟的感觉,不就是把我们的数据存到一个表格中吗。可以简单的这么理解,大家都知道表格都是由表名、表头、数据等几部分组成的,数据库跟这类似,只不过叫法不一样,这里叫数据库名、表名和字段。数据库就简单介绍这么多,说的不一定完全正确,下面就说一下怎么操作数据库。 一、MySQL字段类型 常用的有:数值(int, float)、字符串(varchar, text)、日期(date, datetime) 二、MySQL约束 主键:primary key 外键:foreign key 默认值:default...阅读全文

博文 2018-11-30 16:44:21 Javaspring12

defer 链表如何被遍历执行

去年开始写文章的第一篇就是关于 defer,名字比较文艺:《Golang 之轻松化解 defer 的温柔陷阱》,还被吐槽了。因为这篇文章,到《Go 夜读》讲了一期。不过当时纯粹是应用层面的,也还没有跳进 Go 源码这个大坑,文章看着比较清新,也没有大段的源码解析。 自从听了曹大在《Go 夜读》分享的 Go 汇编,以及研读了阿波张的 Go 调度器源码分析的文章后,各种源码、汇编满天飞…… 上次欧神写了一篇《Go GC 20 问》,全文也没有一行源码,整体读下来很畅快。今天这篇也来尝试一下这种写法,不过,我们先从一个小的主题开始:defer 链表是如何被遍历并执行的。 关于 defer 的源码分析文章,网络上也有很多。不过,很少有能完全说明白这个话题的,除了阿波张的。 我们知道,为了在退出函数前...阅读全文

博文 2020-05-02 18:57:22 qcrao

defer 链如何被遍历

去年开始写文章的第一篇就是关于 defer,名字比较文艺:《Golang 之轻松化解 defer 的温柔陷阱》,还被吐槽了。因为这篇文章,到《Go 夜读》讲了一期。不过当时纯粹是应用层面的,也还没有跳进 Go 源码这个大坑,文章看着比较清新,也没有大段的源码解析。 自从听了曹大在《Go 夜读》分享的 Go 汇编,以及研读了阿波张的 Go 调度器源码分析的文章后,各种源码、汇编满天飞…… 上次欧神写了一篇《Go GC 20 问》,全文也没有一行源码,整体读下来很畅快。今天这篇也来尝试一下这种写法,不过,我们先从一个小的主题开始:defer 链表是如何被遍历并执行的。 关于 defer 的源码分析文章,网络上也有很多。不过,很少有能完全说明白这个话题的,除了阿波张的。 我们知道,为了在退出函数前...阅读全文

博文 2020-03-23 21:46:11 qcrao-2018

树的子结构

题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路 1.递归比较两个数的结构。 2.比较A树和B树当前的结点,若A树和B树的值相等,则继续比较它们的左右子树;若不相等,则拿A树的左子树和右子树进行同样的过程。 3.当B树遍历到了空结点,说明B是A的子结构;否则不是A的子结构。 Java代码实现 public boolean HasSubtree(TreeNode root1,TreeNode root2) { if(root1 == null || root2 == null){ return false; } boolean flag = judge(root1,root2); if(!flag){ flag = HasSubtree...阅读全文

博文 2020-01-09 01:32:43 youzhihua

572. 另一个树的子树

题目描述 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。 示例 给定的树 s: 3 / \ 4 5 / \ 1 2 给定的树 t: 4 / \ 1 2 返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。 思路 1.递归比较两个数的结构。 2.比较A树和B树当前的结点,若A树和B树的值相等,则继续比较它们的左右子树;若不相等,则拿A树的左子树和右子树进行同样的过程。 3.当A树和B树同时遍历到了空结点,说明B是A的子结构;否则不是A的子结构。 Java代码实现 class Solution { public boolean isSubtree(Tr...阅读全文

博文 2020-01-09 01:32:43 youzhihua