在purecpp社区的github组织中有一个协程库:https://github.com/topcpporg/cpp_features 近日有用户找到我,想要了解一下coroutine库在网络方面的性能,于是选取已入选标准库的boost.asio网络库的异步模型做横向对比。 在小包和利用多...
分类:
其他好文 时间:
2015-08-13 13:52:42
阅读次数:
1475
在purecpp社区的github组织中有一个协程库:https://github.com/topcpporg/cpp_features近日有用户找到我,想要了解一下coroutine库在网络方面的性能,于是选取已入选标准库的boost.asio网络库的异步模型做了一次对比测试,结果完爆asio异步...
分类:
其他好文 时间:
2015-08-11 22:53:02
阅读次数:
377
多线程和协程多线程是抢占式多任务(preemptive multitasking),每个子线程由操作系统来决定何时执行,由于执行时间不可预知所以多线程需要使用同步技术来避免某些问题。在单核计算机中,同一时刻只有一个线程允许运行,而在多核计算机中,同一时刻可以有多个线程同时运行(比如8核CPU就可以最...
分类:
其他好文 时间:
2015-08-10 19:29:02
阅读次数:
126
协程是个很好的东西,它能做的事情与线程相似,区别在于:协程是使用者可控的,有API给使用者来暂停和继续执行,而线程由操作系统内核控制;另 外,协程也更加轻量级。这样,在遇到某些可能阻塞的操作时,可以使用暂停协程让出CPU;而当条件满足时,可以继续执行这个协程。目前在网络服务器领域, 使用Lua协程最...
分类:
其他好文 时间:
2015-08-08 14:54:03
阅读次数:
173
现在在学习Python的3.4,遇到了协程的慨念和yield from语法,大为疑惑,所以写了这篇博客,首先会写yield、yield from、coroutine和gevent,最后就是利用asynaio开发的一系列库了。
2015年08月06日23:52:54了,就写这么多吧,以后持续更新。
不知道CSDN的markdown能不能换css样式。。。
关键词 yield
在Python...
分类:
编程语言 时间:
2015-08-07 00:24:46
阅读次数:
228
生产者与消费者,看下例: local?function?producer()
?????return?coroutine.create(
?????function(cookie)
??????????print("cookie?=?",cookie)
??????????local...
分类:
其他好文 时间:
2015-07-29 19:55:52
阅读次数:
131
协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又跟其他协同程序共享全局变量和其他大部分东西。从概念上来讲,线程与协同程序的主要区别在于:一个具有多线程的...
分类:
其他好文 时间:
2015-07-29 14:14:34
阅读次数:
273
并发在于结构,并行在于执行
程序:本文所说的程序是指为了完成某个具体任务,而开发的一套软件,其微观动态上可以是(一组进程,多个线程,或者是一组协程执行体)
并行就是在任一粒度的时间内都具备同时执行的能力:最简单的并行就是多机,多台机器并行处理;SMP表面上看是并行的,但是由于是共享内存,以及线程间的同步等,不可能完全做到并行;
并发是在规定的时间粒度内多个请求都得到执行和处理...
分类:
其他好文 时间:
2015-07-29 14:13:40
阅读次数:
124
协程是什么协程,即协作式程序,其思想是,一系列互相依赖的协程间依次使用CPU,每次只有一个协程工作,而其他协程处于休眠状态。协程可以在运行期间的某个点上暂停执行,并在恢复运行时从暂停的点上继续执行。(摘自于网络)协程实现方式1.使用c的奇技淫巧例如Protothreads,使用switch/case...
分类:
其他好文 时间:
2015-07-27 14:53:05
阅读次数:
168
在写该文之前一直犹豫,是把Go的并发写的面面俱到显得高大尚一些,还是简洁易懂一些?今天看到一个新员工在学习Java,突然间想起第一次接触Java的并发时,被作者搞了一个云里雾里,直到现在还有阴影,所以决定本文从简。哈哈,说笑了,言归正传。Go的并发真的很简单,所以本文..
分类:
编程语言 时间:
2015-07-26 17:31:01
阅读次数:
228