GMP调度模型详解 | Golang

程序员通常提到的线程都是用户线程,而操作系统是不知道用户线程这个东西的,操作系统跑的是内核线程,那么这两者之间就必须要有一种联系。所以会有以下几种常见的线程模型一、线程模型一对一线程模型一对一线程模型,也叫内核级线程模型。一个内核线程对应一个用户线程,内核负责每个线程的调度。实现简单,但是线程的创建、删除和切换的代价都由 CPU 完成,代价较高。Java用的就是这种模型。多对一线程模型多对一线程模

- 阅读全文 -

Interface和struct几个易混淆的点 | Golang

在golang中,struct是设计来存储一组同一个类型或不同类型的数据的一个数据集合,是一种值类型,所以传递时需要区分是否传递其指针。interface也是一种数据结构,存储的是一组具有共性的方法,但是只做定义,其他类型只要实现了这些方法,就是实现了这个接口,可以类比JAVA中的抽象类。使用struct时,可以直接使用func方法数据结构中使用的方法,但是为了解耦这种方式,还是推荐使用inter

- 阅读全文 -