【Golang语言社区投稿】golang高并发基于协程,通道的任务池

要点: 封装了协程模型基于select模型的通道传递; 支持同步和异步添加任务;由于golang无函数指针,任务函数利用了go 反射机制支持可变参的入参 开发者可以在高处理性能前提下,只专注业务开发,往任务池添加任务即可。 实例: //taskpool.go package taskpool import ( "reflect" "time" ) type Task struct { M_func interface{} M_args []interface{} } func (task *Ta...阅读全文

51CTO博客 2021-02-25 22:22:56 mb5fdb0a1b25659

【Golang语言社区】Go语言操作注册表思路

先 win键+R 启动cmd ;然后在cmd中输入regedit,回车就启动了注册表,如下图 我不知道大家开发过win程序没有或者开发过MFC的,都是微软自己有一套API可以直接删除、增加、修改注册表的函数;其实就是再原来的命令上自己封装了一层而已。 所以go语言操作注册表思路如下,熟悉我以上说的就简单了吧: 1 Go语言代码实现cmd功能。 2 通过CMD命令传递参数实现,注册表的修改;大家如果感兴趣可以实现程序的开机启动,不懂的可以留言或者去论坛上提问。以下给大家简单的找了下注册表的相关的操...阅读全文

51CTO博客 2021-02-25 22:21:12 mb5fdb0a1b25659

【Golana语言社区】window应该开发之--cmd杀进程

首先还是给大家简单的介绍下go语言在windows下的应用开发中,例如查杀进程,获取进程的相关数据;操作注册表等等,抑或开发外挂等;用c或者C++,都可以实现;如果想更傻瓜的操作可以直接用微软的API; 今天给大家带来的简单的小例子,kill掉制定执行文件的进程;例如 kill掉记事本的,直接win+R 启动控制台 输入命令 参数---taskkill /im notepad.exe /T /F回车;所有打开的记事本文件都直接强制关掉。Go语言实现非常简单 如下 注:arg:=[]{,strGa...阅读全文

51CTO博客 2021-02-25 22:18:44 mb5fdb0a1b25659

Golang语言社区--游戏服务器编程说明

本季课程只针对VIP授课,大致如下: 1 游戏服务器框架搭建思路 2 游戏服务器部署环境搭建,部署脚本编程等 3 游戏服务器从0开始编码,服务器通信方式选择等 4 游戏服务器数据库使用 5 游戏服务器缓存数据库使用 6 游戏服务器与前端通信方式制定;前端采用Go开发,我们主要是模拟收发消息等 7 游戏服务器服务器间通信 8 游戏服务器GM系统搭建阅读全文

51CTO博客 2021-02-25 22:15:29 mb5fdb0a1b25659

信号量,锁和 golang 相关源码分析

1资源同步1.1 解决方案2 信号量2.1 共享变量2.2 信号量3 锁3.1 死锁3.2 活锁3.3 饥饿4 Golang sync 包4.4.1 数据结构4.4.2 NewCond函数4.4.3 Wait方法4.4.4 Singal方法4.4.5 Broadcast方法4.3.1 数据结构4.3.2 Add和Done方法4.3.3 Wait方法4.2.1 常量和结构4.2.1 RLock和RUnlock方法4.2.2 Lock和Unlock方法4.1.1 接口和结构4.1.2 Lock 方法...阅读全文

51CTO博客 2021-02-25 21:54:03 mb5fdb0a1b25659

信号量,锁和 golang 相关源码分析

1资源同步1.1 解决方案2 信号量2.1 共享变量2.2 信号量3 锁3.1 死锁3.2 活锁3.3 饥饿4 Golang sync 包4.4.1 数据结构4.4.2 NewCond函数4.4.3 Wait方法4.4.4 Singal方法4.4.5 Broadcast方法4.3.1 数据结构4.3.2 Add和Done方法4.3.3 Wait方法4.2.1 常量和结构4.2.1 RLock和RUnlock方法4.2.2 Lock和Unlock方法4.1.1 接口和结构4.1.2 Lock 方法...阅读全文

51CTO博客 2021-02-25 21:53:54 mb5fdb0a1b25659

信号量,锁和 golang 相关源码分析

1资源同步1.1 解决方案2 信号量2.1 共享变量2.2 信号量3 锁3.1 死锁3.2 活锁3.3 饥饿4 Golang sync 包4.4.1 数据结构4.4.2 NewCond函数4.4.3 Wait方法4.4.4 Singal方法4.4.5 Broadcast方法4.3.1 数据结构4.3.2 Add和Done方法4.3.3 Wait方法4.2.1 常量和结构4.2.1 RLock和RUnlock方法4.2.2 Lock和Unlock方法4.1.1 接口和结构4.1.2 Lock 方法...阅读全文

51CTO博客 2021-02-25 21:35:23 mb5fdb0a1b25659

Golang之轻松化解defer的温柔陷阱

defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。深受Go开发者的欢迎,但一不小心就会掉进它的温柔陷阱,只有深入理解它的原理,我们才能轻松避开,写出漂亮稳健的代码。为了更好的阅读体验,按惯例我手动贴上文章目录:什么是defer?defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。defer...阅读全文

51CTO博客 2021-02-25 11:14:39 mb5fd86d5f5874e

Golang之变量去哪儿

写过C/C++的同学都知道,调用著名的malloc和new函数可以在堆上分配一块内存,这块内存的使用和销毁的责任都在程序员。一不小心,就会发生内存泄露,搞得胆战心惊。切换到Golang后,基本不会担心内存泄露了。虽然也有new函数,但是使用new函数得到的内存不一定就在堆上。堆和栈的区别对程序员“模糊化”了,当然这一切都是Go编译器在背后帮我们完成的。一个变量是在堆上分配,还是在栈上分配,是经过编译器的逃逸分析之后得出的结论。这篇文章,就将带领大家一起去探索逃逸分析——变量到底去哪儿,堆还是栈?...阅读全文

51CTO博客 2021-02-25 11:14:09 mb5fd86d5f5874e

Golang error 的突围

姗来迟的 Go 1.13 修改了 errors 包,增加了几个函数,用于增强 error 的功能,这篇文章介绍 error 相关的用法。由于上上周发表的调度器系列文章的标题比较文艺,导致这篇文章的标题采用了相似的命名方法。我尝试想写一个大的主题,奈何水平有限,如果没有写出大家理想的水平,见谅~按照惯例,手动贴上文章的目录:写过 C 的同学知道,C 语言中常常返回整数错误码(errno)来表示函数处理出错,通常用 -1 来表示错误,用 0 表示正确。而在 Go 中,我们使用 error 类型来表示...阅读全文

51CTO博客 2021-02-25 10:24:27 mb5fd86d5f5874e

【Golang语言社区】四川麻将随机初始化牌型结构

package mainimport ( "fmt" "math/rand" "time")const ( NoHU = 0 //不胡 PingHU = 1 //平胡;四坎牌,加一对将,得一分。 DuiDuiHU = 2 //对对胡;每坎牌都是三张一样的牌,即111万、222条,得两分。 QiangGangHU = 3 //抢杠胡;它人杠的时候,抢牌胡,得两分。 QingYiSe = 4 //清一色;全手牌是一种花色,即123条、567条、234 条、888条、99条,得三分。 YaoJiuPa...阅读全文

51CTO博客 2021-02-25 22:13:48 mb5fdb0a1b25659

你们使用的Go IDE要改名了?!

大名鼎鼎的Jetbrains官方博客2017年10月13日的发布文章,邀请各位Gopher和Jetbrains的用户,给大家使用了大半年的IDE改个名字!什么?小便很不理解,Gogland这名字不是蛮好记的么,大街小巷都知道的名字怎么说改就改,怎么对得起苦心做起来的SEO还有广大博主为你们IDE写的文章?小便的心就像太监的心,任凭怎么对着皇上使眼色都没用。。。好吧!君无戏言,小便继续为皇上传话。阅读全文

51CTO博客 2021-02-25 22:11:06 mb5fdb0a1b25659

Awesome Go!高玩Gopher都会参考的Go资源集合

什么是AwesomeAwesome的中文意思就是令人惊叹的。在Github上,Awesome早已成为某种领域资源集合的通用前缀,至于为什么要用Awesome,小编也无从得知,只知道各种Awesome系列,最终都汇集到了一个总集合中,感兴趣的朋友可以访问https://github.com/sindresorhus/awesome,也可以长按以下二维码访问。https://github.com/sindresorhus/awesome关于Awesome-Go正如其名,Awesome-Go是Go语言...阅读全文

51CTO博客 2021-02-25 22:10:18 mb5fdb0a1b25659

go语言项目优化(经验之谈)

1 Go的应用场景在斗鱼我们将GO的应用场景分为以下三类,缓存类型数据,实时类型数据,CPU密集型任务。这三类应用场景都有着各自的特点。缓存类型数据在斗鱼的案例就是我们的首页,列表页,这些页面和接口的特点是不同用户在同一段时间得到的数据都是一样的,通常这些缓存类型数据的包都比较大,并且这些数据没有用户态,具有一定价值,很容易被爬虫爬取。实时类型数据在斗鱼的案例就是视频流,关注数据,这些数据的特点是每次请求获取的数据都不一样。并且容易因为某些业务场景导流,例如主播开播提醒,或者某个大型赛事开赛,会...阅读全文

51CTO博客 2021-02-25 21:48:32 mb5fdb0a1b25659

Go后offer之路上的那些真相

Go语言这几年算是越来越火了,很多一线大公司和新兴的业务都开始启用这种语言做开发,比如区块链业务,游戏开发等等,但是就市场上提供的职位数量来说,Go的市场招聘人数还是与其他主流大热语言有一定差距,当然相对于其他语言的候选人数量来说,Go的面试竞争还是要小一些,有兴趣了解数据的小伙伴可以参考往期文章——爬虫带你了解一下Golang的市场行情。 我因为工作的关系,和很多企业的HR、Go开发爱好者都有过一些深入的交流,发现好多小伙伴在求职到拿offer的过程中都踩过不少坑,今天我就冒着被HR和猎头朋友...阅读全文

51CTO博客 2021-02-25 21:46:00 mb5fdb0a1b25659