![](https://img-blog.csdnimg.cn/20201121205925157.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
GO
文章平均质量分 53
go语言学习记录
.Voyager
眼有星辰,心有山河。
展开
-
用一个简单的函数来理一下RPC调用过程
1.什么是RPCRPC(Remote Procedure Call)远程过程调度,简单的理解就是一个节点请求另一个节点的提供的服务。2.远程调用要面临的三个问题。(1)Call ID映射。本地调用中,函数体是直接通过函数指针来指定的,调用函数时,编译器会自动调用它相应的函数指针。但在远程调用中,函数指针是不行的,因为两个进程的地址空间完全不一样。所以,在RPC中所有的函数都必须有自己的一个ID。这个ID在所有进程中都是唯一确定的。客户端在做远程过程调用时,必须附上这个ID。然后我们还需要在客户端原创 2022-05-11 11:21:22 · 1814 阅读 · 0 评论 -
go语言中coroutine和goroutine的区别
coroutine和goroutine的区别2.goroutine协程间不完全同步,可以利用多核并行运行,具体要看channel的设计;coroutine协程间完全同步,不会并行3.goroutine可以在多个协程在多个线程上切换,既可以用到多核,又可以减少切换开销。coroutine只在一个线程中运行,只在一个线程中运行4.goroutine操作系统如果发现一个应用程序长时间大量地占用 CPU,那么用户有权终止这个任原创 2022-03-04 00:34:44 · 750 阅读 · 0 评论 -
go语言实现利用广度优先搜索算法实现走迷宫
go语言实现利用广度优先搜索算法实现走迷宫原创 2022-03-03 17:47:12 · 166 阅读 · 0 评论 -
Go语言实现栈的各种操作
1.用数组实现(顺序栈)package mainimport ( "fmt")type arraystack struct { items []string//切片 count int //栈中元素个数 n int //栈的大小}//初始化func (this *arraystack) arraystack(n int){ this.n=n this.count=0}//入栈func (this *arraystack) push(it原创 2022-03-01 00:20:01 · 617 阅读 · 0 评论 -
Go语言实现单链表的增删改查等18种操作
package mainimport ( "fmt")// ListNode 定义为一个链表的节点type ListNode struct { value interface{} next *ListNode}// LinkedList 定义为链表type LinkedList struct { head *ListNode length uint}// NewListNode 实现了新建一个节点操作func NewListNode(v interface{}).原创 2022-02-27 13:42:06 · 633 阅读 · 0 评论 -
Go语言基础语法(二)
1.数组原创 2021-11-13 20:32:42 · 1119 阅读 · 0 评论 -
Go语言基础语法(一)
1.变量的定义1.1当使用var关键字的时候var a,b,c boolvar s1,s2 string ="hello world"可以放在函数内,或者直接放在包内可以使用var()集中定义变量1.2可以让编译器自动决定类型var a,b,i,s1,s2=true,false,3,“hello”,“world”1.3使用:=定义变量a,b,i,s1,s2:=true,false,3,"hello","world"只能在函1.1数内使用2.内建变量类型bool原创 2021-11-09 21:33:23 · 505 阅读 · 0 评论 -
GO-5-go语言能做什么事情
Go语言能做什么一、我们为什么选择Go语言选择Go语言的原因可能会有很多,关于Go语言的特性、优势等,我们在之前的文档中也已经介绍了很多了。但是最主要的原因,应该是基于以下两方面的考虑:执行性能缩短API的响应时长,解决批量请求访问超时的问题。在Uwork的业务场景下,一次API批量请求,往往会涉及对另外接口服务的多次调用,而在之前的PHP实现模式下,要做到并行调用是非常困难的,串行处理却不能从根本上提高处理性能。而GO语言不一样,通过协程可以方便的实现API的并行处理,达到处理效率的最大化。原创 2020-11-21 21:15:00 · 754 阅读 · 0 评论 -
GO-4-go语言的优势
Go语言和其他语言的对比一、Go语言设计初衷1、设计Go语言是为了解决当时Google开发遇到的问题:大量的C++代码,同时又引入了Java和Python成千上万的工程师数以万计行的代码分布式的编译系统数百万的服务器2、Google开发中的痛点:编译慢失控的依赖每个工程师只是用了一个语言里面的一部分程序难以维护(可读性差、文档不清晰等)更新的花费越来越长交叉编译困难3、如何解决当前的问题和痛点?Go希望成为互联网时代的C语言。多数系统级语言(包括Java和C#)的原创 2020-11-21 21:14:15 · 294 阅读 · 0 评论 -
GO-3-go语言的核心特性
Go语言的核心特性Go语言,作为编程语言的后生,站在巨人的肩膀上,吸收了其他一些编程语言的特点。Go 编程语言是一个开源项目,它使程序员更具生产力。Go 语言具有很强的表达能力,它简洁、清晰而高效。得益于其并发机制, 用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型系统则使程序结构变得灵活而模块化。 Go 代码编译成机器码不仅非常迅速,还具有方便的垃圾收集机制和强大的运行时反射机制。 它是一个快速的、静态类型的编译型语言,感觉却像动态类型的解释型语言。(摘取自官网)一、思想Less原创 2020-11-21 21:12:10 · 200 阅读 · 0 评论 -
GO-2-go语言的前世今生
Go语言的前世今生一、 为什么需要一个新的语言最近十年来,C/C++在计算领域没有很好得到发展,并没有新的系统编程语言出现。对开发程度和系统效率在很多情况下不能兼得。要么执行效率高,但低效的开发和编译,如C++;要么执行低效,但拥有有效的编译,如.NET、Java;所以需要一种拥有较高效的执行速度、编译速度和开发速度的编程语言,Go就横空出世了。传统的语言比如c++,大家花费太多时间来学习如何使用这门语言,而不是如何更好的表达写作者的思想,同时编译花费的时间实在太长,对于编写-编译-运行这个链条来原创 2020-11-21 21:11:29 · 556 阅读 · 0 评论 -
GO-1-知名编程语言或系统的发展简史
知名编程语言或系统的发展简史一、B语言B语言之父:Ken Thompson(肯.汤普森)。B语言是贝尔实验室开发的一种通用的程序设计语言,它是于1969年前后Ken Thompson(肯.汤普森)在Dennis Ritchie丹尼斯.里奇(Dennis Ritchie)的支持下设计出来。该语言得名于汤姆森的妻子Bonnie,它是一门开发于60年代中期的语言,现在使用者已经很少了。二、C语言C语言之父:Dennis Ritchie(丹尼斯·里奇)。美国著名计算机专家、C语言发明人、UNIX之父。在1原创 2020-11-21 21:10:23 · 311 阅读 · 0 评论 -
go语言学习笔记(入门篇)
没有继承的OO,强一致类型,Interface但是不需要显示申明(Duck Type),Function 和Method,没有异常处理(Error is value),基于首字母的可访问特性,不用的Import或者变量引起编译错误,完整而卓越的标准库包......go语言的 这些特点,是不是激发了你的兴趣呢,go语言作为一门新兴的语言,以其独有的特点受到很多人的青睐,笔者将自己在学习g...原创 2018-04-27 10:30:46 · 1389 阅读 · 0 评论