低版本: #!/usr/bin/env python import threading import time import queue class TreadPool: """ 将线程加入到队列中作为资源去完成任务 优点:简单好写容易理解 缺点:太尼玛多了..... """ def __init__(self, maxsize): self.maxsize = maxsize self._q = queue.Queue(maxsize) for…
线程 线程是应用程序中工作的最小单元.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 直接调用 import threading import time def show(arg): time.sleep(1) print 'thread'+str(arg) for i in range(10): t = threading.Thread(target=show, args=(i,)) t.start…
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memcached安装和基本使用 Memcached安装: CentOS: yum install libevent-dev…
线程池 简单的线程池的实现: import queue import threading import time class ThreadPool(object): def __init__(self, max_num=20): self.queue = queue.Queue(max_num) for i in range(max_num): self.queue.put(threading.Thread) def get_thread(self): return self.queue.get…
Mysql基础 一.安装 Windows: 1.下载 http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.31-winx64.zip 2.解压 将压缩包解压到你想要安装的位置,例如我的解压到C:\Program Files\mysql-5.6.31-winx64 3.配置环境变量 右击我的电脑-->属性-->高级系统设置-->高级-->环境变量-->系统变量-->找到Path变量-->编辑 在最后添加 ;C…
rabbitMQ RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过 队列来通信.队列的使用除…
SOCKET编程 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用打开,读写,关闭 模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭) 面向连接与无连接 面向连接 无论你使用哪…
一.re模块 正则表达式本身是一种小型的.高度专业化的编程语言,正则表达式就是字符串的匹配规则,在多数编程语言里都有相应的支持,python里对应的模块是re,正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行. 匹配语法 re方法(匹配模式,字符串,flag) (一)字符 1.元字符 普通字符 匹配内容 . 匹配任意除换行符"\n"外的字符,若指定flag DOTALL,则匹配任意字符,包括换行 \ 转义字符,使后一个字符改变原来的意思 * 匹配前一个字符0或多次…
一.什么是装饰器? 装饰器他人的器具,本身可以是任意可调用对象,被装饰者也可以是任意可调用对象. 强调装饰器的原则:1 不修改被装饰对象的源代码 2 不修改被装饰对象的调用方式 装饰器的目标:在遵循1和2的前提下,为被装饰对象添加上新功能 二.软件开发的原则 软件开发 的 一个原则:“开放-封闭”原则 开放:对现有功能的扩展开放 封闭:已实现的功能代码块不应该被修改 三.装饰器的应用 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也…
URL        - 两个    Views        - 请求的其他信息        from django.core.handlers.wsgi import WSGIRequest        request.environ        request.environ['HTTP_USER_AGENT']        - 装饰器            FBV:                def auth(func):                    def inn…