Go Runtime的调度器

以goroutine形式进行Go并发编程是一种非常方便的方法,但有没有想过他是如何有效地运行这些goroutine?下面从设计的角度,深入了解和研究Go运行时调度程序,以及如何在性能调试过程中使用它来解释Go程序的调度程序跟踪信息。 要了解为什么需要有一个运行时的调度以及它是如何工作的,先要回到操作系统的历史上,在这里将找到答案,因为如果不了解问题的根源。 操作系统的历史 1. 单用户(无操作系统) 1. 批处理 单编程 运行完成 1. 多程序 多程序的目的是使C...阅读全文

Go语言中文网 2021-06-17 07:46:16 13161658867

Goland 开启一个项目的正确姿势

**因为在每次创建项目,build时都会出现Error:cannot not find package,所以会有这篇文章的诞生** # 1. 在创建项目前的准备 ## 1.1 安装好**golang**,**goland** ## 1.2 查看`GOPATH` ```sh echo $GOPATH # 如果需要更改GOPATH可以根据以下操作 (Mac) vim ~/.bash_profile export GOPATH=#你的目标地址 #保存 :wq #刷新 ...阅读全文

Go语言中文网 2021-06-16 15:31:58 18970078164

Frequently Asked Questions 的中文翻译

最近半年开始转写Go代码,已经写了快半年,现在想巩固一下,于是在阅读Frequently Asked Questions (https://golang.org/doc/faq#runtime)文章内容,想着顺便翻译一下,加深理解,并且提高一下英语。 几乎每天都会更新一部分内容,感兴趣的可以 访问我的仓库:https://github.com/fongfiafia/golang_FAQ_cn 访问我的掘金:https://juejin.cn/user/4257730942211864 ...阅读全文

Go语言中文网 2021-06-11 22:35:05 fongfiafia

微服务实战Go Micro v3 系列(二)- HelloWorld

首先从我们最最熟悉的 **helloworld** 例子在入手,对 **go-micro** 有一个初步的了解 <!--more--> ## 源码地址 * [源码地址](https://github.com/CleverBamboo/go-micro-examples) * [爱租房](https://github.com/CleverBamboo/renting) ## 系列文章 * [微服务实战Go Micro v3 系列(一)- 基础篇](https://cleve...阅读全文

Go语言中文网 2021-06-11 09:11:02 celverbamboo

微服务实战Go Micro v3 系列(一)- 基础篇

最近完成了公司租房微服务项目,由于使用 **go-micro v3**遇到了不少的问题,在这里利用一个实战项目帮助大家融会贯通的使用 **go-micro v3** 另外,由于 Micro3.0直接放弃维护 go-micro,所以网上很多文章都是已经过时的了。 <!--more--> ## 源码地址 * [源码地址](https://github.com/CleverBamboo/go-micro-examples) * [爱租房](https://github.com/C...阅读全文

Go语言中文网 2021-06-11 09:10:08 celverbamboo

【提问】golang的IDE在同一个目录下,函数调用undifined,求大佬告知如何设置run kind

​​明明定义在同一个目录下,但是却显示undifined,搜了一圈网上说是golang的IDE设置问题,然后配置时候遇到了问题,求各位大佬指点。​package path怎么填都不对,我填的是和Working directory一样的目录也不行,求解答,到底问题出在哪里。阅读全文

Go语言中文网 2021-06-09 17:22:59 wtb123

【招聘】【上海/南京】边界智能招聘golang开发工程师(11-22K)

来做什么: 1、参与需求分析与系统架构设计; 2、撰写需求文档和软件设计书; 3、按系统设计完成功能模块的编写和单元测试; 4、遵循软件开发流程,按照代码规范编写代码; 5、独立维护所开发的软件模块代码。 我们期待你: 1、计算机或相关专业的本科及以上学历; 2、1年以上软件或互联网应用开发经验; 3、精通Go,Java和Node开发语言中至少一种,熟悉至少一种主流开发框架; 4、精通HTTP协议,熟练使用至少一种主流Web服务器; ...阅读全文

Go语言中文网 2021-06-09 17:00:53 Alexis_gu

go module 引入本地包的问题

问题来源:自己写了一个小框架,想单独放到项目外面方便多项目引入使用。但是放到“$GOPATH/pkg/mod”下不能直接用,各种报错,后经过各种试验最终编译通过,总结下来就以下几点,分享给大家。项目是放到“project”文件夹下的,想要引入的包是“frame”,这两个文件夹可以各自在计算机磁盘任意位置。该文章使用go版本号1.16.5/*项目文件中的"go.mod"文件:module projectgo 1.16require frame v1.0.0replace frame v1.0.0 ...阅读全文

Go语言中文网 2021-06-09 16:56:33 jiangjie

Go timer 是如何被调度的?

hi,大家好,我是 haohongfan。 本篇文章剖析下 Go 定时器的相关内容。定时器不管是业务开发,还是基础架构开发,都是绕不过去的存在,由此可见定时器的重要程度。 我们不管用 NewTimer, timer.After,还是 timer.AfterFun 来初始化一个 timer, 这个 timer 最终都会加入到一个全局 timer 堆中,由 Go runtime 统一管理。 全局的 timer 堆也经历过三个阶段的重要升级。 * Go 1.9 版本之前,所有的...阅读全文

Go语言中文网 2021-06-08 12:00:28 haohongfan

Golang 上传Office文档并转化为PDF

之前介绍了利用libreoffice 将office文件转化pdf并处理中文乱码的问题 不清楚的同学点击这里 [使用LibreOffice将word转化为pdf -解决中文乱码](https://studygolang.com/articles/35059#reply0) 现在结合Golang 实现文件上传和并生成PDF链接地址 upload.html 上传页面 ```html <!DOCTYPE html> <html lang="en"> <head> <meta ch...阅读全文

Go语言中文网 2021-06-07 11:15:40 hulu

Golang两个协程交替输出

题目: 现在有两个goroutine。 一个输出1、3、5、7、9…… 另一个输出2、4、6、8、10…… 写一段代码,让他们输出1、2、3、4、5、6、7、8、9、10…… 解法: 使用Go的channel来解决比较合适。 需要3个channel。 A通道用来记录A协程的状态。 B通道用来记录B协程的状态。 Exit通道用来阻塞主协程,使程序不要立即退出,而是等待我们发出退出信号以后才退出。 ...阅读全文

Go语言中文网 2021-06-03 16:49:34 jlvihv

golang快速入门(二)初尝命令行参数

**提示:本系列文章适合有其他语音基础并对Go有持续冲动的读者** ### 一、package介绍 ​ Go语言的代码是通过package来组织的,package的概念和你知道的其它语言 里的libraries或者modules概念比较类似。 ​ 一个package会包含一个或多个.go结束的源代码文件。每一 个源文件都是以一个package xxx的声明语句开头的,比如我们的例子里就是package main。这行声明语 句表示该文件是属于哪一个package,紧跟着是一...阅读全文

Go语言中文网 2021-06-01 19:57:45 zhangxiaohai

ubuntu下安装golang

golang官方编译器安装与配置 因为golang是用部分功能语言编写的,所有首先应安装gcc, sudo apt-get install bison gawk gcc libc6-dev make 安装mercurial工具,用于提取golang的源代码 sudo apt-get install mercurial 提取golang的原代码 hg clone -r release https://go.googlecode.com/hg/ go 编译源代码...阅读全文

Go语言中文网 2021-05-28 21:31:22 iAeLv11408