分类 编程 中的文章

协程解析二 | 云风的coroutine

概述 云风的coroutine是通过ucontext来控制程序运行时上下文的,我们来根据该库提供的几个接口,和一个demo来解释协程的运行原理。如果不了解ucontext的,建议先了解ucontxt 环境……

阅读全文

协程解析一 | ucontext

概述 最近在研究协程的实现原理,看了云风的coroutine和腾讯的开源库libco后,原来要实现一个协程库也没那么难。我先来讲讲云风的coroutine库。他使用的是 uncontext来保存程序运行上……

阅读全文

Golang | 定时器

概述 golang有三种方式实现定时器: ticker timer select Ticker 通过 time.NewTicker(d)的方式实现定时器 d := time.Duration(time.Second * 2) t1 := time.NewTicker(d) defer t1.Stop() go func() { for { <- t1.C fmt.Println("NewTicker...") } }() Timer 通过 time.NewTimer(d)的方式实现定时器 t2 := time.NewTimer(d)……

阅读全文

Lua | 解决百元买鸡的问题

问题 编写lua程序求解百鸡百钱问题。公鸡5元一只,母鸡3元一只,小鸡一元3只,问100元钱买100只鸡,可买公鸡、母鸡、小鸡各多少只? 代码 ----------------------------------------------------------------------------- --公鸡5元一只,母鸡3元一只,小鸡一元3只,问100元钱买……

阅读全文

Golang | JWT身份认证

概述 最近要在http接口上加一个token认证,但是接口很多,有没有一个省时省力的办法来解决。token的使用流程是: 用户使用帐号密码登陆到服务器1. 服务器验证登陆成功,根据帐号密码生成token。把……

阅读全文

Lua | 调用C/C++的动态库

概述 最近在学习 云风的skynet库,想自定义一个模块,目标是使用lua调用C/C++所编写的库。 当我们需要在Lua里面调用c/c++函数时,所有的函数都必须满足以下函数签名: typedef int (*lua_CFunction) (lua_State *L); 换句话说,所有的……

阅读全文

汇编 | C/C++调用汇编

概述 我使用AT&T的规范,在linux上完成 C和汇编的互相调用,并使用gcc编译成可执行文件。 目标:汇编函数提供输出。类似C语言的函数 void hello_world(char* value) { printf(value); } 提供给C语言调用: int main() { hello_world("hello world!\n"); } 搭建AT&……

阅读全文

Skynet | lua-protobuf

概述 在最新的skynet中我使用的是云风的pbc库来解析protobuf,该项目中的一个文件protobuf.lua 使用了module语法在lua5.1版本中已经删除,最新的skynet是lua5.4……

阅读全文