golang的开发学习

error 是接口类型 通过 errors.New 函数生成的错误值 只能赋值給变量 而不能赋給常量

syscall 包 Errno 类型 代表了系统调用时可能发生的底层错误

这个错误类型 是error接口的实现类型 同时也是对内建类型 uintptr 的再定义类型

可以作为常量的类型 用其建的错误值列表 无法被修改

os 包 的错误值

  • os.ErrClosed
  • os.ErrInvalid
  • os.ErrPermission
  • os.IsExist
  • os.IsNotExist
  • os.IsPermission

进程是某个程序运行时的一个产物 一个进程至少包含一个线程

如果只包含一个线程 所有代码都会被串行地执行

第一个线程叫做主线程 其他的线程都是由进程中已经存在的线程创造出来的 其他线程只能由代码显式创建和销毁 系统一般不会去操作

go 语言的运行时 runtime 会帮忙处理系统级的线程

由代码处理创建 销毁 调度 状态变更的线程 速度快 控制灵活 非常复杂

goroutine 独特的并发编程模型

G goroutine
P processor G M 对接的中介
M machine 系统级线程

没有任何内容输出

改进方式是使用通道

使用一个通道保存一些令牌 只有先拿到一个令牌 才能启用一个 goroutine 另外在go 函数 即将执行结束的时候 还需要把令牌即时归还給那个通道

任务分发器 任务管道 固定个数的goroutine

动态任务池 动态 goroutine 池

发布了345 篇原创文章 · 获赞 8 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/ailinyingai/article/details/103744060