asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。 asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO。 用asyncio实现Hello worl ...
分类:
编程语言 时间:
2016-06-14 13:58:04
阅读次数:
244
在学习异步IO模型前,先来了解协程 协程又叫做微线程,Coroutine 子程序或者成为函数,在所有语言中都是层级调用,比如a调用b,b调用c。c执行完毕返回,b执行完毕返回,最后a执行完毕返回 所以子程序是通过栈来实现的,一个线程就是执行一个子程序 子程序调用总是一个入口一次返回,调用顺序是明确的 ...
分类:
编程语言 时间:
2016-06-14 13:52:34
阅读次数:
232
1 Gevent 协程 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调用时的状态(即所 ...
分类:
编程语言 时间:
2016-06-10 14:58:49
阅读次数:
185
Alex本期相关博文。 Python中的Priority Queue是minimal priority queue. Queue使用task_done与join实现生产者与消费者的通信。 Queue只能用于一个进程的各个线程的同步。 ...
分类:
其他好文 时间:
2016-06-09 22:14:09
阅读次数:
260
先前写过一篇文章:http://www.cnblogs.com/gengzhe/p/5557789.html,也是asp.net core和golang web的对比,热心的园友提出了几点问题,如下: 1、需要加入sleep来模拟实际业务,这样才能考验协程调度能力。 2、golang擅长的是多核环境 ...
分类:
Web程序 时间:
2016-06-05 21:25:58
阅读次数:
171
libgo 是一个使用 C++ 编写的协作式调度的stackful协程库, 同时也是一个强大的并行编程库。 设计之初是为高并发分布式Linux服务端程序开发提供底层框架支持,可以让链接进程序的同步的第三方库变为异步库,不影响逻辑的前提下提升其性能。 目前支持两个平台: Linux (GCC 4.8+ ...
分类:
其他好文 时间:
2016-06-03 21:34:15
阅读次数:
811
http://blog.csdn.net/win_lin/article/details/8242653 译文在后面。 State Threads for Internet Applications Introduction State Threads is an application libra ...
分类:
编程语言 时间:
2016-06-02 18:15:02
阅读次数:
272
一、进程 操作系统中最核心的概念是进程,分布式系统中最重要的问题是进程间通信。 进程是“程序执行的一个实例” ,担当分配系统资源的实体。进程创建必须分配一个完整的独立地址空间。 进程切换只发生在内核态,两步:1 切换页全局目录以安装一个新的地址空间 2 切换内核态堆栈和硬件上下文。 另一种说法类似: ...
分类:
编程语言 时间:
2016-06-02 17:56:56
阅读次数:
199
Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻量级协程。 Greenlet全部运行在主程序操作系统进程的内部,但它们被协作式地调度。例子: gevent_同步与异步的性能区别1... ...
分类:
其他好文 时间:
2016-05-31 12:01:00
阅读次数:
139