golang源码 源码安装文件 Go Modules 此版本增加了对被称作“模块(Go Modules)”的初步支持,这是 GOPATH 的替代方案,集成了对版本控制和软件包分发的支持。该功能目前仍处于实验性阶段,并且仍有一些可能会影响使用的问题,因此请随意使用问题跟踪器进行反馈或查阅解决方案。 WebAssembly Go 1.11 还为 WebAssembly (js/wasm) 添加了一个处于实验性阶段的端口。它使得开发者可将 Go 程序编译为与四个主流 Web 浏览器兼容的二进制格式。
在学一门语言的过程中,如果不看中间代码和源码怎么能知晓这门语言调度器的调度过程呢?
今天我就来介绍一个用于看golang重点代码的小工具
GOSSAFUNC=hello go build hello.go
例如这么一个问题
首先我们在本地
创建一个hello.go
插入代码
package main
import fmt
func main() {
a := new(struct{})
b := new(struct{})
println(a, b, a == b)
c := new(
概述
go通过goroutine实现用户态的执行流切换,goroutine有几个好处
用户态切换(网络或者channel,mutex等),不占用资源
可变大小的栈,占用资源少
隐藏底层poller(主要是epoll实现的netpoller细节)和调度细节,使用起来简单,以同步方式实现异步的性能
G M P
G: goroutine,就是平常提到的go中的协程
M: machine,线程,就是平常提到的操作系统中的线程
P: process,处理器,有的文章说代表上下文,P管理G和M,只有当G和P
Kronos博客系统
安装运行
golang安装
brew install go
运行博客
go mod download
go mod vendor
编译博客&& Make
build 编译项目
test 执行单元测试
clean 清除编译缓存
run 运行项目
restart 重启
mod 安装项目依赖
cross 跨平台编译
fmt 格式化代码
##待办事项清单
storage缓存文件的存放
数据库的数据迁移文件数据填充文件
doc文档的自动生成
命令行的添加
任务调度器
集体调度
其他