这段时间看了一些Go语言相关的东西,发现Go语言的最大特性并发模型类似于C++里面的线程池,正好我们项目服务器也是用的线程池,记录下。 Go语言的并发单位是语言内置的协程,使用关键字go+函数创建一个新的协程,新创建的协程会自动加入到协程调度上下文的等待调度队列,一个协程调度上下文对应一个线程...
分类:
编程语言 时间:
2014-10-17 00:14:53
阅读次数:
316
因为协程的好处,所以协程库现在有好多libtask,boost::coroutine,libco......
libtask很不错,以后或许会用。
boost我个人基本很少用。
腾讯的libco自己用汇编实现了swapcontext函数,不明觉厉(libtask也有ASM)。而且把epoll整合在了里面。
微信后台就用到了它.在chinaunix.net上的一个帖子中就说到了这个。...
分类:
其他好文 时间:
2014-10-13 18:19:57
阅读次数:
213
最近想看看协程,对这个的具体实现不太了解,查了下,协程最常规的做法就是基于makecontext,getcontext,swapcontext这类函数在用户空间切换用户上下文。
所以在这通过例子代码尽量把context相关的函数弄清楚先。
#include
#include
#include
static ucontext_t uctx_main, uctx_func1, uctx_f...
分类:
其他好文 时间:
2014-10-10 00:18:28
阅读次数:
324
一、coroutine.create创建协程
参数是协程的主函数,返回一个thread对象
co = coroutine.create(function()
print("coroutine execute!")
end)
二 协程状态
协程有4种状态:挂起(suspended)、运行(running)、死亡(dead)和正常(normal)
coroutine.status(co)...
分类:
其他好文 时间:
2014-10-08 17:13:35
阅读次数:
290
神语言(god)是基于lua和RPP的新一代编程语言
为什么需要它?
1.很多人不喜欢lua的语法,god的语法更像C
2.god支持元编程、闭包、协程
3.凡是lua支持的特性god也支持,lua不支持的宏god也支持,因此god比lua强大
4.god可以使用lua库,甚至允许god和lua混合编程
5.god是最快的脚本语言之一,性能与C接近,因为god基于luaJIT
6....
分类:
其他好文 时间:
2014-10-06 17:34:30
阅读次数:
213
协程和多线程下的线程类似:有自己的堆栈,自己的局部变量,有自己的指令指针,但是和其他协程程序共享全局变量等信息。线程和协程的主要不同在于:多处理器的情况下,概念上来说多线程是同时运行多个线程,而协程是通过协作来完成,任何时刻只有一个协程程序在运行。并且这个在运行的协程只有明确被要求挂起时才会被挂起
你可以使用coroutine.create来创建协程:
co = coroutine.c...
分类:
其他好文 时间:
2014-10-06 01:28:19
阅读次数:
336
libco是腾讯开源的一个协程库,主要应用于微信后台RPC框架,下面我们从为什么使用协程、如何实现协程、libco使用等方面了解协程和libco。why协程为什么使用协程,我们先从server框架的实现说起,对于client-server的架构,server最简单的实现:while(1) {acce...
分类:
其他好文 时间:
2014-10-02 20:24:23
阅读次数:
472
文章出处:http://blog.csdn.net/lanphaday/archive/2010/03/19/5397038.aspx 协程,又称微线程和纤程等,据说源于 Simula 和 Modula-2 语言(我没有深究,有错请指正),现代编程语言基本上都有支持,比方 Lua、ruby 和最新的...
分类:
其他好文 时间:
2014-09-30 17:25:29
阅读次数:
170
最近2年Node.js很火,异步与协程是网络开发方面热门的话题。在追求新技术的同时,也应该反思下这里面存在的陷阱。Node.js确实是一门有趣好玩有个性的语言和技术,动态性,全异步回调的方式,闭包等等特性。值得所有程序员尝试一下。但本文将介绍的是一门另外的容易被大家轻视的编程语言:PHP。长期以来P...
分类:
Web程序 时间:
2014-09-25 21:08:07
阅读次数:
346
进程从直观上来看,进程就是操作系统上的一个正在运行的程序,常用的我们可以通过命令查看到Linux上面有哪些程序在运行:ps -aux这里可以看到一些进程的状态,另外可以通过访问文件系统的方式来获取信息:cat /proc/pid/status
分类:
编程语言 时间:
2014-09-24 13:59:06
阅读次数:
171