常见的异步io模块asyncio、gevent、twisted、tornado 核心技术为select()和协程 异步io请求的本质则是【非阻塞Socket】+【IO多路复用】 协程在这里不是一个必须使用的技术,在使用select()事件驱动循环本身就可以达到单线程异步的效果 io协程在遇到阻塞时进 ...
分类:
其他好文 时间:
2018-02-24 13:20:34
阅读次数:
250
简短介绍 asyncio是遵循Python标准库的一个异步 I/O框架.在这篇文章里,我将介绍 uvloop: 可以完整替代asyncio事件循环.uvloop是用Cython写的,基于 libuv. uvloop 使得 asyncio 更快. 实际上,比nodejs,gevent,以及其他任何Py ...
分类:
编程语言 时间:
2018-02-22 21:34:43
阅读次数:
1055
注意 1.不能无限的开进程,不能无限的开线程最常用的就是开进程池,开线程池。其中回调函数非常重要回调函数其实可以作为一种编程思想,谁好了谁就去掉2.只要你用并发,就会有锁的问题,但是你不能一直去自己加锁吧那么我们就用QUEUE,这样还解决了自动加锁的问题由Queue延伸出的一个点也非常重要的概念。以 ...
分类:
编程语言 时间:
2018-02-19 23:19:53
阅读次数:
280
WebSSH有很多,基于Django的Web服务也有很多,使用Paramiko在Python中进行SSH访问的就更多了。但是通过gevent将三者结合起来,实现通过浏览器访问的堡垒机就很少见了。本文将简要介绍下我开发的IronFort堡垒机,其详细内容在我的官方网站liujiangblog.com的... ...
分类:
Web程序 时间:
2018-01-31 01:12:23
阅读次数:
1238
阅读目录 一 引子 二 协程介绍 三 Greenlet 四 Gevent介绍 五 Gevent之同步与异步 六 Gevent之应用举例一 七 Gevent之应用举例二 一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发 ...
分类:
编程语言 时间:
2018-01-18 01:07:03
阅读次数:
255
__author__ = 'admin' from gevent import monkey monkey.patch_all(thread=False) import gevent,time,os from threading import Thread,currentThread from mu... ...
分类:
编程语言 时间:
2018-01-14 12:10:18
阅读次数:
171
Flask ==> scoped_session 小结: 1.scoped_session的的功能: 支持了线程安全。 方式一:手动维护,各种操作都需要自己完成。由于无法提供线程共享功能,所有在开发时要注意,在每个线程中自己创建 session。 方式二:支持线程安全,为每个线程创建一个sessio ...
分类:
其他好文 时间:
2018-01-13 14:26:34
阅读次数:
243
1、使用自身服务器的多进程或者多线程,参考werkzeug的run_simple函数的入参。注意,进程和线程不能同时开启 2、使用gunicorn使用多进程,-w worker 进程数,类型于运行多个app.run()开发服务器 3、使用gevent异步 /usr/local/bin/gunicor ...
分类:
其他好文 时间:
2017-12-25 23:28:53
阅读次数:
948
知乎自己在底层造了非常多的轮子,而且也在服务器部署方面和数据获取方面广泛使用 gevent 来提高并发获取数据的能力。现在开始我将结合实际使用与测试慢慢完善自己对 gevent 更全面的使用和扫盲。 在对 gevent loop 的使用上,gevent tutorial 介绍得非常敷衍,以至于完全不 ...
分类:
其他好文 时间:
2017-12-15 20:09:44
阅读次数:
169
协程,又称微线程,纤程。英文名Coroutine。gevent是一个基于协程的Python网络库 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用。 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回, ...
分类:
其他好文 时间:
2017-11-07 12:12:53
阅读次数:
119