码迷,mamicode.com
首页 >  
搜索关键字:协程    ( 1680个结果
Lua 协程 coroutine
协程是协同程序的简称,顾名思义,就是协同工作的程序。协程拥有自己独立的桟、局部变量和PC计数器,同时又与其他协同程序共享全局变量和其他大部分东西;    协程与线程的主要区别在于,一个多线程程序可以同时运行几个线程(并发执行、抢占),而协同程序却需要彼此协作地运行,即一个多协程程序在任意时刻只能运行一个协程,并且正在执行的协程只会在其显式地要求挂起(suspend)时,它的执行才会暂停(无抢占...
分类:其他好文   时间:2014-09-21 17:21:01    阅读次数:232
python greenlet背景介绍与实现机制
最近开始研究Python的并行开发技术,包括多线程,多进程,协程等。逐步整理了网上的一些资料,今天整理一下greenlet相关的资料。  并发处理的技术背景       并行化处理目前很受重视, 因为在很多时候,并行计算能大大的提高系统吞吐量,尤其在现在多核多处理器的时代, 所以像lisp这种古老的语言又被人们重新拿了起来, 函数式编程也越来越流行。 介绍一个python的并行处理的一个库...
分类:编程语言   时间:2014-09-18 11:30:03    阅读次数:212
使用gevent提高IO繁忙型wsgi服务的并发量(转)
add by zhj:个人认为gevent还是更牛逼一些,当然,这只是我简单的分析,没有试验过。对比分析如下:使用Tornado,启动一个进程,N个线程使用Gevent,启动一个进程,N个协程CPU除了执行用户代码外,就是调用调用程序进行线程/协程切换。而协程切换要比线程切换的开销小,速度快,所以G...
分类:其他好文   时间:2014-09-14 02:32:06    阅读次数:513
基于gevent全国手机号段spider蜘蛛爬虫
首先介绍下python异步执行,python有两种方法编写异步代码:1、corutines协程(也称为greenlets)2、回调gevent是greenlets的一种实现方式,可以通过pip方便的安装gevent模块。gevent执行方式实际上是代码块的交替执行,具体的可以看下这篇blog,我就不...
分类:移动开发   时间:2014-09-10 17:22:50    阅读次数:499
利用golang实现聊天通信
实现逻辑1、Golang 版本 1.32、实现原理: 1、主进程建立TCP监听服务,并且初始化一个变量 talkChan := make(map[int]chan string) 2、当主进程ACCEPT连接请求后,利用go 启动一个协程A去维持和客户端的连接,把taokChan带入到协程里 ...
分类:其他好文   时间:2014-09-03 19:44:27    阅读次数:281
Gevent的协程实现原理
之前之所以看greenlet的代码实现,主要就是想要看看gevent库的实现代码。。。然后知道了gevent的协程是基于greenlet来实现的。。。所以就又先去看了看greenlet的实现。。。 这里就不说greenlet的具体实现了,关键就是栈数据的复制拷贝,栈指针的位移。。。 因为gevent带有自己的I/O以及定时循环,所以它对greenlet又加了一层的扩展。。。...
分类:其他好文   时间:2014-09-02 19:59:15    阅读次数:288
Unity 协程与调用函数的区别以及示例应用
Coroutine:协同程序(简称:协程),参考网络给出以下两个定义供参考。1>协同程序,即在主程序运行时同时开启另一段逻辑处理,来协同当前程序的执行。换句话说,开启协同程序就是开启一个模拟线程。[作者注:不是真正的线程]2>是一种很古老的编程模型,以前的操作系统里进程..
分类:其他好文   时间:2014-09-02 10:40:05    阅读次数:339
协程初探
文章出处:http://blog.csdn.net/lanphaday/archive/2010/03/19/5397038.aspx 协程,又称微线程和纤程等,据说源于 Simula 和 Modula-2 语言(我没有深究,有错请指正),现代编程语言基本上都有支持,比方 Lua、ruby 和最新的...
分类:其他好文   时间:2014-08-27 20:10:48    阅读次数:176
[OpenStack] Nova中的线程模型
1) greenlet - python中的协程库 1.1) 什么是协程 (Coroutine) Coroutine Wiki http://en.wikipedia.org/wiki/Coroutine CoRoutine是在Thread基础上的再次切分. 每一个Process可以包含多个Thread, 每个线程包含多个CoRoutine在任何时刻, 同一个Threa...
分类:编程语言   时间:2014-08-27 18:51:38    阅读次数:266
python协程的实现(greenlet源码分析)
基本上读完了greenlet的源代码,代码不多,就2000行C语言的代码,其中有一部分栈寄存器的修改的代码是由汇编实现的。。。 一句话来说明greenlet的实现原理:通过栈的复制切换来实现不同协程之间的切换。。。 那么接下里来具体的来看看greenlet的代码到底是怎么实现的。。。...
分类:编程语言   时间:2014-08-25 21:12:16    阅读次数:623
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!