go语言是类型检查的
go语言的并发比较强
go语言对并发的支持是这门语言最重要的特性之一,goroutine很像线程,但是它占用的内存远少于线程,使用它需要的代码更少。
通道(channel)是一种内置的数据结构,可以让用户在不同的goroutine之间同步发送具有类型的消息。
这让编程模型更倾向于在goroutine之间发送消息,而不是让多个goroutine争夺同一个数据的使用权。
goroutine是可以与其它goroutine并行执行的函数,同时也会与主程序(程序的入口)并行执行。
在其它编程语言中,你需要用线程来完成同样的事情,而在go语言中会使用同一个线程来执行多个goroutine。
例如,用户写一个web服务器。希望同时处理不同的web请求,如果使用C或者Java,不得不写大量的额外代码来使用线程。(是的)——
但是在go语言中,net/http库直接使用了内置的goroutine。每个接收到的请求都自动在其自己的goroutine里处理,goroutine使用的
内存比线程更少,go语言运行时会自动在配置的一组逻辑处理器上调度执行goroutine。每个逻辑处理器绑定到一个操作系统线程上。
这让用户的应用程序执行效率更高,而开发工作量显著减少,。