摘要: 1、环境搭建,参考下面链接 https://blog.csdn.net/Koren_Wei/article/details/83048369 2、书籍 推荐下面两本入门书籍,评分高,讲的很透彻,建议两本都看。 go语言实战 go语言学习笔记 3、githup https://github.com/g 阅读全文
posted @ 2019-09-24 10:11 wudiffs 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 一、go语言部署 由于go语言支持跨平台,只需要不同平台编译成各平台所需要的二进制文件,就可以运行,无需任何环境。java跨平台是由于有适配各平台的jvm,二者跨平台的原理还是不同的。 针对下面平台的编译部署命令如下: // 设置目标可执行程序操作系统构架 这里amd64是一个很大的坑,这里是要运行 阅读全文
posted @ 2019-09-24 10:10 wudiffs 阅读(753) 评论(0) 推荐(2) 编辑
摘要: 一、两种并发模型 多线程共享内存,以共享内存的方式来通信。比如java在访问共享数据的时候,通过加锁来实现,java.util.concurrent包。 CSP(communicating sequential processes)并发模型,以通信的方式来共享内存。Go的CSP并发模型是通过goro 阅读全文
posted @ 2019-09-24 10:08 wudiffs 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 一、go语言竞争状态、原子函数、互斥锁 下面代码例子是展示并发下公共数据操作,通过原子函数和互斥锁怎么解决。 package main import ( "sync" "runtime" "fmt" "sync/atomic" ) var( // counter是所有goroutine都要增加的变量 阅读全文
posted @ 2019-09-24 10:06 wudiffs 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 一、goroutine goroutine就是Go语言提供的一种用户态线程。Go自己实现了goroutine的调度器(Scheduler),Go的调度器由三部分组成: M:指的是Machine,一个M直接关联了一个内核线程。 P:指的processer,代表M所需的上下文环境,也是处理用户级代码逻辑 阅读全文
posted @ 2019-09-24 10:05 wudiffs 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 一、内核线程模型 内核线程(Kernel Level Thread,KLT)就是由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操作调度器(Scheduler)对线程进行调度,并负责将线程的任务映射到各个处理器上。 程序一般不会直接去使用内核线程,而是去使用内核线程的一种高级接口—轻 阅读全文
posted @ 2019-09-24 10:03 wudiffs 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 一、一个简单的Go程序 下面这个程序是一个http请求,输出返回的body字段。panic会立即中断函数流程,执行延时调用。从下面这个程序可以看出通过go访问http非常简洁。 二、Go语言数据类型 uint 32位或64位 uint8 无符号 8 位整型 (0 到 255) uint16 无符号 阅读全文
posted @ 2019-09-24 10:01 wudiffs 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 一、设计Go语言是为了解决当时Google开发遇到的问题: 大量的C++代码,同时又引入了Java和Python。 成千上万的工程师。 数以万计行的代码。 分布式的编译系统。 数百万的服务器。 二、Google开发中的痛点: 编译慢。 失控的依赖。 每个工程师只是用了一个语言里面的一部分。 程序难以 阅读全文
posted @ 2019-09-24 09:59 wudiffs 阅读(826) 评论(0) 推荐(0) 编辑