golang 设计模式之singleton使用总结
golang 1.5版本之后默认设置GOMAXPROCS值为当前计算机真实核心数,使得goroutines从默认的单线程内并发执行变成了默认的(真实核心数支持的)的多线程内并行执行。多线程并行执行goroutines需要考虑并行执行过程中引入的线程安全问题。
golang 1.5版本之后默认设置GOMAXPROCS值为当前计算机真实核心数,使得goroutines从默认的单线程内并发执行变成了默认的(真实核心数支持的)的多线程内并行执行。多线程并行执行goroutines需要考虑并行执行过程中引入的线程安全问题。
golang 在1.5版本之前默认只使用一个核心来跑所有的goroutines,即GOMAXPROCS默认设置为1, ,即是串行执行goroutines,在1.5版本后,GOMAXPROCS默认设置为当前计算机真实的核心线程数,即是在并行执行goroutines。
go能处理高并发的根本原因在于执行go协程只需极少的栈内存(大概4~5KB),并且能根据需要动态增长和缩减占用的资源。
反射是一种检查存储在接口变量中的<值,类型>对的机制,借助go反射包提供的reflect.TypeOf和reflect.ValueOf可以方便的访问到一个接口值的reflect.Type和reflect.Value部分,从而可进一步得到这个接口的结构类型和对其进行值的修改操作。
接口被定义为一组方法的集合, 接口可以接收任何其实现的方法的值.
从技术上来将,Go并不是一门面向对象的编程语言,所以与充许将类型和方法以面向对象的方式编程有些差别,最大的差异在于Go不支持类型继承,但是提供一个接口的概念. 在本章中,我们主要来讨论在Go编程中使用方法和接口.
Go语言中主要有三种控制流程if,for循环,switch case语句。
Go集合类型包含Array,Slice,Range,Map等议题的分析和讨论。
Go内置类型实战,包括类型转换,类型断言,结构类型,结构继承等内容。