Go ———一门优秀的编程语言
2020-12-01 本文已影响0人
Lovealfy
初识go语言是在今年5月份,耗时不到3个月和团队一起开发了一个比较大型的web应用。这篇文章主要是总结了go语言特点和部分开发常用基础知识。在写博客的路上还很长,慢慢走才会走得更远。
go语言开发三大特点
1、开发效率高
语言非常简单,关键字少,框架也很简单。正交性,它是支持面向对象的,不是一个完全面向对象的
设计理念追求简单,把一些不是很有必要的东西全部都砍掉了,语言功能是非常精简的
编译速度很快、运维部署很容易
2、支持高并发
Goruntine 协程 协程与线程主要区别是它将不再被内核调度,而是交给了程序自己而线程是将自己交给内核调度,所以不难理解golang中调度器的存在
进程是系统分配资源的最小单位、线程是cpu调度的最小单位,共享进程的内存地址空间Golang的一个调度器去调度不同的协程 ,量级比线程还要轻很多,协程没有线程的上下文切换消耗,协程的调度切换时用户手动切换的,因此更加灵活,因此又叫用户空间线程,有原子操作性
3、性能特别高
垃圾回收、自带高性能http服务器
高并发 只需要一个go关键字就可以启动一个新的协程,使用方便、goroutine比java中线程轻量级、效率高,基于消息传递的通信,传统的大多是共享内存的并发模型,需要锁的同步机制,go是靠消息管道channel来通信
运算性能是java的1.5倍,运行空间是java的几十分之一,启动时间是java的几十分之一,并发量是java的上千倍性能上不如C语言,但是语法比c要简单,c语言是过程性语言,申请内存、内存分配都需要手工处理,go语言支持简单的自动化GC
还具有 工程管理、用目录和包名自动推导,编译无需依赖,编译速度快,编程规范统一,统一错误优点