至联云讲解《IPFS生态最新进展及分布式存储未来市场潜力》

IPFS作为一种新型的储存技术,致力于改变传统存储的提供与使用方式,是存储应用普及的重要突破口。目前客户遍及中国8个省份,三年内将遍及东南亚,走出中国。公司立足中国安徽,服务全球存储市场 IPFS生态近期有比较大的发展,比如内容分享、社交网络、身份服务、区块链应用、金融电子化等等各个方面。非常重要的是,目前有比较多的浏览器开始支持IPFS,包括Firefox, Chrome, Brave, Opera 等。IPFS 0.5.0改进巨大IPFS 0.5版是IPFS 到目前为止最大的一次更新。这次更...阅读全文

简书 2020-05-28 21:32:56 雨中的泡面

Go 并发编程的思考

如果我必须选择 Go 的一个伟大特性,那么它必须是内置的并发模型。Go 不仅支持并发性,而且使其更好,更易于使用。Go 并发模型 (goroutine) 对并发编程的作用,就类似于 docker 之于虚拟化的作用。什么是并发在计算机程序设计中,并发性指的是计算机同时处理多个任务的能力。例如,如果你在浏览器中上网,可能会有很多事情同时在发生。比如,你正在下载一些文件,同时滚动页面来收听音乐。因此浏览器需要同时处理这两件事情。如果浏览器无法处理这些问题,则需要等到所有下载任务完成,然后才能够重新浏览...阅读全文

简书 2020-05-28 21:32:54 CXX_FLAGS

人生苦短,我学Java

当你踏进计算机世界的大门时,PHP、JavaScript、.Net、Python、C、C++、Ruby、Golang、Java等编程语言一定是不陌生的,这么多的编程语言可能让你有点眼花缭乱了,学哪一个好呢?有的人觉得C语言是最好的,因为大学第一门课学的就是它呀;有的人觉得PHP语言是最好的,因为“PHP是世界上最好的语言”呀;有的人觉得C++是最好的,因为面向对象编程,从此有对象了啊。然而我想说Java语言综合来说是最好的,正如术业有专攻,在某个特定的领域也有最适合的语言,但从互联网发展趋势、语...阅读全文

简书 2020-05-28 21:32:48 AI课工场

Golang 使用beego框架的Bee工具(无法下载和没有可执行文件问题

前言 这两天想着学习一下beego框架,在下载bee时遇到了问题,使用了多个方法都没解决,最后直接使用最笨的方法------下载重新编译出可执行文件,最后成功解决问题,因此在这里记载一下这个bug。 Golang使用beego框架 beego框架的中文文档,有详细的使用介绍,我就是用按着官方文档进行操作,具体操作如下: beego安装 go get github.com/astaxie/beego bee工具安装 go get github.com/beego/bee 这里下载的时候就会遇到问题...阅读全文

简书 2020-05-28 21:32:47 sunsong1997

learn go with tests 学习笔记(二) 数组与切片

知识点 先写测试! Go 有内置的计算测试 覆盖率的工具,它能帮助你发现没有被测试过的区域。我们不需要追求 100% 的测试覆盖率,它只是一个供你获取测试覆盖率的方式。只要你严格遵循 TDD 规范,那你的测试覆盖率就会很接近 100%。 运行: `go test -cover` 你会看到: PASS coverage: 100.0% of statements 数组 数组初始化: 数组的容量是我们在声明它时指定的固定值。我们可以通过两种方式初始化数组: [N]type{value1, value...阅读全文

简书 2020-05-28 21:32:46 硌手小石头

Go 三方库安装问题

在项目中我们需要下载和使用各种个样的库,但是我们有时候用 go get 是安装不上的,那么我们就用 本地创建库文件 在项目目录下(这个是我今天遇到的问题,报错golang.org/x/text/encoding) mkdir -p $GOPATH/src/golang.org/x/ cd $GOPATH/src/golang.org/x git clone https://github.com/golang/text.git // 一般这一步我会省掉,在github手动下载,然后把文件包粘贴过来...阅读全文

简书 2020-05-28 21:32:46 熊猫拍板砖

golang container/ring源码解读

最近在看gokit的熔断器源码的时候看到了内部有使用到 container/ring 的这个数据结构;虽然大体知道这个数据结构提供的一个常用API,也知道该怎么用;但是不知道内部具体是怎么实现的。所以就看了内部的源码实现;在这里分享出来,有不对的地方欢迎大家指正。 在正式开始讲解源码之前先铺垫几个基础的数据结构知识 1、单链表 节点内部会存储当前节点的值跟下一个节点的指针,单链表的访问只能向前推进访问不能后退 单链表 2、单向循环链表 单向循环链表的尾节点的后继节点指向了链表的头结点;其他跟单链...阅读全文

简书 2020-05-28 21:32:46 airun

goroutine、channel原理

goroutine原理 概念介绍 并发 ⼀个CPU上能同时执⾏多项任务,在很短时间内,CPU来回切换任务执⾏(在某段很短时间内执⾏程序a,然后⼜迅速得切换到程序b去执⾏),有时间上的重叠(宏观上是同时的,微观仍是顺序执⾏),这样看起来多个任务像是同时执⾏,这就是并发。 并⾏ 当系统有多个CPU时,每个CPU同⼀时刻都运⾏任务,互不抢占⾃⼰所在的CPU资源,同时进⾏,称为并⾏。 进程 CPU在切换程序的时候,如果不保存上⼀个程序的状态(context--上下⽂),直接切换下⼀个程序,就会丢失上⼀个...阅读全文

简书 2020-05-28 21:32:44 强某某

Golang--Go语言 五百行后台代码实现一简约的个人博客网站-tinyblog

博客演示地址:http://121.36.253.86/,统计了下后台代码只有415行。没有比这更小的吧已被OsChina开源社区收录,地址在https://www.oschina.net/p/tinybg 开源地址:https://gitee.com/yyz116/tinybg https://github.com/yangyongzhen/tinybg当然,一个css或js文件都不可能这么短,这里仅指的是后台代码。这得益于go语言的强大和设计思路的精巧,以及封装的go语言存储模块的简单好用。...阅读全文

Go语言中文网 2020-05-28 18:23:52 qq8864

多路IO复用事件驱动的服务器模型比阻塞IO多线程服务器模型高在哪?

# 多路IO复用事件驱动的服务器模型比阻塞IO多线程服务器模型高在哪? * 本文从两点进行分析: * 线程调度 * 内存占用 * 文章很多内容都是仅凭个人认知推测, 并未进行实时考证, 不过个人感觉应该有参考价值(不然也不会写了) ## 线程调度 ### `linux`进程调度的时机 * 进程不再处于`TASK_RUNNING`状态 * 如: 由于等待IO而阻塞(`TASK_UNINTERRUPTIBLE`),或者因等待资源和特定事件而休眠(`...阅读全文

Go语言中文网 2020-05-28 17:28:25 loop_0

并发编程的数据竞争问题以及解决之道

Go语言以容易进行并发编程而闻名,但是如果稍不注意,并发程序可能导致的数据竞争问题(data race)就会经常出现在你编写的并发程序的待解决Bug列表中-- 如果你不幸在代码中遇到这种错误,这将是最难调试的错误之一。 今天这篇文章里我们首先来看一个导致数据竞争的示例程序,使用go命令行工具检测程序的竞争情况。然后我们将介绍一些在不改变程序核心逻辑的情况下如何绕过并解决并发情况下的数据竞争问题的方法。最后我们会分析用什么方法解决数据竞争更合理以及留给大家的一个思考题。 本周这篇文章的主旨概要如下...阅读全文

掘金 2020年05月28日 kevinyan

golang 链表合并

思路来源: https://leetcode-cn.com/probl... 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 func main(){ a := new(Node) a.Data = 1 a.Next = &Node{2, &Node{4, nil}} b := new(Node) b.Data = 1 b.Next = &Node{3, &Nod...阅读全文

Segmentfault 2020-05-28 21:32:41 氓浅

Go语言接口内部布局和方法集详解

1. 接口值内部布局   如果用户定义的类型实现了某个接口类型声明的一组方法,那么这个用户定义的类型的值就可以赋给这个接口类型的值。这个赋值会把用户定义的类型的值存入接口类型的值。赋值完成后得到的值称为接口值。接口值是一个两个字长度的数据结构,第一个字包含一个指向内部表的指针。这个内部表叫作iTable,包含了所存储的值的类型信息和与这个值相关联的一组方法(也就是方法集)。第二个字是一个指向所存储值的指针。下图展示实体值赋值后接口值的内部布局:                          ...阅读全文

Go语言切片详解

1. 切片底层实现 1.1 切片简介   Go语言中的切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数append来实现的,还可以通过对切片再次切片来缩小一个切片的大小。因为切片在内存中是连续的,所以切片还能获得索引、迭代以及垃圾回收优化的好处。 1.2 切片底层实现   切片的底层实现包含3个字段:指向底层数组的指针、切片访问的元素的个数(长度)、切片允许增长到的元素的个数(容量),如下图所示。切片可以理解为对底层数组进行了抽象,并提供了相关的操作方法。  ...阅读全文

Segmentfault 2020-05-28 21:32:40 lvnux

「go」golang环境配置for mac

下载 官方的地址被墙,摊手~ 好在可以访问 https://golang.google.cn/ image.png 1、将下载好的源码包解压到/usr/local目录,将解压出来的go文件夹拖入/usr/local目录 2、安装包.pkg包直接双击打开,按照指示安装好 3、环境变量配置 打开.bash_profile文件 配置如下 export GOPATH=/usr/local/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOBIN 然后,执行...阅读全文

简书 2020-05-28 13:32:45 刀码旦

Python和GO语言之间的区别是什么?

Python和GO语言都是用于编写web应用程序强大而且高级的编程语言,拥有广泛的领域以及前景,那么它们之间有什么区别吗?下面小编就带大家了解一下Python和GO语言。 什么是Python?Python是一种功能强大的高级编程语言,主要用于科学和工程计算,是一种高效语言,优雅简洁而且强大,适合新手以及专业人士学习。 什么是GO语言?一种通用编程语言,由Google设计,借鉴了许多其他许多好主意语言,同时避免导致复杂性和不可靠代码的功能。 Python和Go之间的区别是什么? 1、范例:Pyth...阅读全文

51CTO博客 2020-05-28 10:36:09 老男孩IT

并发编程的数据竞争问题以及解决之道

Go语言以容易进行并发编程而闻名,但是如果稍不注意,并发程序可能导致的数据竞争问题(data race)就会经常出现在你编写的并发程序的待解决Bug列表中-- 如果你不幸在代码中遇到这种错误,这将是最难调试的错误之一。 今天这篇文章里我们首先来看一个导致数据竞争的示例程序,使用go命令行工具检测程序的竞争情况。然后我们将介绍一些在不改变程序核心逻辑的情况下如何绕过并解决并发情况下的数据竞争问题的方法。最后我们会分析用什么方法解决数据竞争更合理以及留给大家的一个思考题。 本周这篇文章的主旨概要如下...阅读全文

Segmentfault 2020-05-28 21:32:40 Kevin

Golang是如何读取文件内容的

本文旨在快速介绍Go标准库中读取文件的许多选项。 在Go中(就此而言,大多数底层语言和某些动态语言(如Node))返回字节流。 不将所有内容自动转换为字符串的好处是,其中之一是避免昂贵的字符串分配,这会增加GC压力。 为了使本文更加简单,我将使用string(arrayOfBytes)将bytes数组转换为字符串。 但是,在发布生产代码时,不应将其作为一般建议。 1.读取整个文件到内存中 首先,标准库提供了多种功能和实用程序来读取文件数据。我们将从os软件包中提供的基本情况开始。这意味着两个先决...阅读全文

掘金 2020年05月28日 第八共同体

在 Go 中使用并发编程的思考

如果我必须选择 Go 的一个伟大特性,那么它必须是内置的并发模型。Go 不仅支持并发性,而且使其更好,更易于使用。Go 并发模型 (goroutine) 对并发编程的作用,就类似于 docker 之于虚拟化的作用。什么是并发在计算机程序设计中,并发性指的是计算机同时处理多个任务的能力。例如,如果你在浏览器中上网,可能会有很多事情同时在发生。比如,你正在下载一些文件,同时滚动页面来收听音乐。因此浏览器需要同时处理这两件事情。如果浏览器无法处理这些问题,则需要等到所有下载任务完成,然后才能够重新浏览...阅读全文

Go语言中文网 2020-05-28 10:50:14 LLiuJJ