Go语言8-socket和redis

socket 编程 在Go里为我们提供了net包。下面这篇貌似是官方文档的翻译:https://blog.csdn.net/chenbaoke/article/details/42782571 上面的转载,上面的页面在IE下浏览貌似有点问题:https://studygolang.com/articles/3600 Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain na...阅读全文

51CTO博客 2018-11-18 23:34:13 骑士救兵

我的 Channel 在 Select 语句中的 Bug

我当时正在测试一个已经上线运行的项目的新功能,忽然代码表现得非常糟糕。我看到后很惊讶,后来搞清楚了原因。 接下来提供这份代码的简化版本,包含两个 bug。 ```go package main import ( "fmt" "os" "os/signal" "time" ) var Shutdown bool = false func main() { sigChan := make(chan os.Signal, 1) signal.N...阅读全文

Go语言中文网 2018-11-18 23:39:28 polaris

从PHP迁移至Golang - 基础篇

1、Why Not PHP 使用PHP构建的WEB程序,随着业务发展到一定体量之后,都不得不面临以下一些问题: 业务功能不断扩张,如何避免某单一业务功能故障影响整体,维持系统健壮性 业务逻辑复杂度不断上升,如何解耦与模块化,降低系统复杂性 网站访问量不断攀升,如何实现高并发,实现系统高可用性 计算密集型业务的出现,如何快速适应需求,提升网站性能 ... 对于PHP而言,在业务发展初期,可以快速实现业务原型,满足需求,但是在发展的中后期就显得略有点后劲不足。因为PHP在高并发、多进程/线程以及密集...阅读全文

Segmentfault 2018-11-18 19:34:43 yabo

关于 Go1.11 module 和语义版本

关于 Go1.11 module 和语义版本 2018-11-18 把公司项目迁移到 Go1.11 的 module 了,这个过程中对于版本控制,依赖管理之类的事情有了更加深入的了解。 本来懒得写东西,有同事说起,“我们从 glide 到 dep,一直到现在切换到 module 了,为什么项目的依赖还是很难用”,所以我觉得还是有必要写一写。让更多的人理解 go module 以及语义版本,还是有意义的。 包是一个固定的路径,而包的代码是会动态的变化的。如果今天 import 一个包可以编译过,明...阅读全文

zenlife的博客 2018-11-18 zenlife

2018年慕课网视频教程(php、vue、python、Go语言、java)

#### 如需下述哪一个课程,加QQ: 3475362830,非免费,几大洋,非诚勿扰! ## GO 012 Go语言实战流媒体视频网站 Google资深工程师深度讲解Go语言 基于Golang协程实现流量统计系统 学习Hyperledger Fabric 实战联盟链 ## java (Java仿微信全栈 高性能后台+移动客户端 )NettySpringboot仿微信聊天全栈实战 从0开发到上线部署(完整版) Web自动化测试 Selenium基...阅读全文

Go语言中文网 2018-11-18 17:17:45 yushuang

8.Golang数组array、切片slice、字典map 数据操作

一、数组 array 声明数组时,必须声明数组大小,声明后大小不可变,未赋值的空间默认值为数组存储类型的 0 值。 数组是值类型数据,相同空间大小的数组可以用 == 来比较是否相同。 package main import "fmt" func main() { var a1 = [2]int{1, 2} var a2 = [2]int{1, 2} fmt.Println(a1 == a2) // 输出:true } 2.数组遍历 package main import "fmt" func m...阅读全文

简书 2018.11.18 15:06 野尘lxw

阿里、京东Java程序员面试考题外泄,快来看看你会哪些?

面试,难还是不难?最终结果好还是不好?取决于面试者的底蕴(气场+技能)、心态和认知以及沟通技巧。而一些主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴)更是需要你在面试时展现出自己的能力,从而获得面试官的欣赏和肯定。 ![image.png](https://static.studygolang.com/181118/f906238d78e483c7fa882fe14e6bd8c6.png) 而程序员在应聘时更是需要经历层层面试。俗话说,磨刀不误砍柴工,做好面试前的准备工作可以帮助大...阅读全文

Go语言中文网 2018-11-18 15:43:40 Java404

golang 后台服务设计精要

#### [原文地址](http://litang.me/post/golang-server-design/) ### 守护进程 传统的后台服务一般作为守护进程(daemon)运行。linux 上创建 daemon 的步骤一般如下: 1. 创建子进程,父进程退出; 2. 调用系统调用 `setsid()` 脱离控制终端; 3. 调用系统调用 `umask()` 清除进程 umask 确保 daemon 创建文件和目录时拥有所需权限; 4. 修改当前工作目录为系统根目录; ...阅读全文

Go语言中文网 2018-11-18 15:12:40 darlingtangli

go cgo 使用总结

#### [原文地址](http://litang.me/post/golang-cgo/) CGO 提供了 golang 和 C 语言相互调用的机制。某些第三方库可能只有 C/C++ 的实现,完全用纯 golang 的实现可能工程浩大,这时候 CGO 就派上用场了。可以通 CGO 在 golang 在调用 C 的接口,C++ 的接口可以用 C 包装一下提供给 golang 调用。被调用的 C 代码可以直接以源代码形式提供或者打包静态库或动态库在编译时链接。推荐使用静态库的方式,这...阅读全文

Go语言中文网 2018-11-18 14:52:05 darlingtangli

golang之树的遍历

go语言在区块链编程中有巨大的优势,其中fabric和ethereum都是基于go语言编写的。为了能更好的学习区块链的底层技术,先将go的基础打好。 本篇文章使用golang来实现树的遍历 树的定义 package tree type Node struct { Val int Left *Node Right *Node } 深度优先遍历 深度优先遍历需要优先使用栈 栈的定义 type Stack struct { list *list.List } func NewStack() *Stac...阅读全文

Segmentfault 2018-11-18 14:34:42 菟潞寺沙弥

Golang语言社区 课程2018年11月17日 更新说明

| Golang语言社区 课程2018年11月17日 更新说明 1 从零搭建游戏服务器-第二期: 第二十一节:服务器模拟玩家行走测试2 https://study.163.com/course/introduction.htm?courseId=1005743022&share=2&shareId=400000000538037 2 Go语言实现贪吃蛇: 第七节:地图分析及服务器选型 https://study.163.com/course/introduction.htm?courseId=1...阅读全文

简书 2018.11.17 13:45 Golang语言社区

Docker应用详细解析(一) —— 在macOS上使用Docker(一)

版本记录 版本号 时间 V1.0 2018.11.17 星期六 前言 Docker是一个跨平台的轻量级虚拟机,可移植性非常高,一次部署,终生可用。Docker可以在Linux、Windows、MacOS等平台上安装使用。接下来几篇我们就一起看一下Docker相关的内容。 开始 Docker是一种工具,可以轻松地在容器中运行应用程序。 容器提供隔离和安全性,如虚拟机,但它们要小得多,因为它们在主机系统中运行。 作为iOS开发人员,您为什么要使用Docker? 避免版本问题 - 运行操作系统版本,编...阅读全文

简书 2018.11.17 14:49 刀客传奇

golang sync.Mutex

相较于Go语言宣扬的“用通讯的方式共享数据”,通过共享数据的方式来传递信息和协调线程运行的做法其实更加主流,比较大多数的现代编程语言,都是用后一种方式作为并发编程的解决方案的。  一旦数据被多个线程共享,那么就很可能会产生争用和冲突的情况。这种情况被称为竞态条件(race condition),这往往会破坏共享数据的一致性。  共享数据的一致性代表着某种约定,即:多个线程对共享数据的操作总是可以达到它们各自预期的效果。  如果这个一致性得不到保证,那么将会影响到一些线程中代码和流程的正确执行,甚...阅读全文

简书 2018.11.17 17:17 one_zheng

内网穿透 --- 搭建自己的ngork服务器及身份认证

内网穿透的目的是:让外网能访问局域网内本地的应用,例如在外网访问你本地http://127.0.0.1指向的Web站点。 ngrok简介 ngrok是一个反向代理,通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道。ngrok可捕获和分析所有通道上的流量,便于后期分析与响应。 开源免费 官网:https://ngrok.com/ 源码:https://github.com/inconshreveable/ngrok ngrok.png ngrok使用go语言开发,源代码分为客户端与服...阅读全文

简书 2018.11.17 17:54* martin6699

golang基于etcd实现分布式锁

我们希望同一时间只有一个线程能够访问到资源,但是分布式资源点之间的协调会非常麻烦,这个时候我们就需要一个分布式锁。线程先要获取到分布式锁,然后才能去操作资源。 etcd分布式锁实现原理: 1.利用租约在etcd集群中创建一个key,这个key有两种形态,存在和不存在,而这两种形态就是互斥量。 2.如果这个key不存在,那么线程创建key,成功则获取到锁,该key就为存在状态。 3.如果该key已经存在,那么线程就不能创建key,则获取锁失败。 4.形象的解释一下,将key的存在和不存在两种状态比...阅读全文

简书 2018.11.17 20:11 我的饭卡呢

Golang语言社区 课程2018年11月18日 更新说明

Golang语言社区 课程2018年11月18日 更新说明 1 从零搭建游戏服务器-第二期: 第二十二节:服务器模拟玩家行走测试3 https://study.163.com/course/introduction.htm?courseId=1005743022&share=2&shareId=400000000538037 2 Go语言开源框架分析: Leaf框架:Leaf实战项目传送门 https://ke.qq.com/course/345679?tuin=5b20ed37 社区福利: 彬...阅读全文

简书 2018.11.17 22:51 Golang语言社区