2

Go ———一门优秀的编程语言

 1 year ago
source link: https://studygolang.com/articles/31884?fr=sidebar
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

初识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


  还具有 工程管理、用目录和包名自动推导,编译无需依赖,编译速度快,编程规范统一,统一错误优点


下面用一张思维导图来总结go基础知识点


有疑问加站长微信联系(非本文作者)

280

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK