学习GO要了解的几个特性
所属分类 go
浏览量 801
不支持继承,特殊的接口机制
通过组合来扩展
类型嵌入不支持最基本的继承特性
子类替换
方法重载 override
接口机制
实现接口的类型不依赖于接口定义
接口是方法的集合
任何类型只要拥有与接口对应的全部方法,就表示它实现了该接口
内置GC 垃圾收集器 ,支持指针对内存的直接访问
错误处理机制
方法课返回多个值,可以同时返回结果和错误状态
Go设计者 认为try-catch-finally 导致异常处理与控制流程的耦合,导致程序结构混乱
CSP并发模型
Communicating Sequential Processes
独立的并发实体通过共享的通讯 Channel(管道)进行通信
GoCSP模式与常见的Actor模式区别(Erlang使用Actor模式)
Actor直接通讯,CSP 通过Channel进行通讯,更松的耦合
Go channel 有容量限制 并且独立于处理GOroutine, Erlang Actor模式中的mailbox容量无限,接收进程总是被动地处理消息
Goroutine的调度机制
协程 轻量级
Java线程模型中线程和KSE(Kernel space Entity) 1:1 系,一个用户线程对应一个KSE
GOroutine和KSE 多对多
虽然GOroutine的调度机制不如,由内核直接调度的线程机制效率那么高
但是GOroutine间的切换不涉及内核级切换,所以代价小很多
上一篇
下一篇
key忽略大小写的TreeMap
go select 与 定时器
go类型转换和断言
GO 并发递增计数实例
Go并发构建模块
Go语言atomic原子操作