- 我的消息
- 我的博客
- 我的学院
- 我的下载
- 我的收藏
- 消息
-
-
python多线程 多进程
多进程与多线程 我们都知道,操作系统中所有的程序都是以进程的方式来运行的,或者说我们把运行着的程序称为进程(Process)。例如运行记事本程序就是启动一个记事本进程,运行两个记事本就是启动两个记事本进程。 很多时候,进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、...
转载2018-02-01 18:55:57760 -
python实现redis分布式锁
#!/usr/bin/env python # coding=utf-8 import time import redis class RedisLock(object): def __init__(self, key): self.rdcon = redis.Redi...
原创2018-02-01 14:39:072140 -
Python使用装饰器和线程限制函数执行时间的方法
前言: (不想看废话的可以直接copy尾部的代码) 在八月上旬的时候,曾经写过一个多线程爬虫。程序在运行时经常莫名的卡死。这令我很是费解,后来才发现,是在请求对方资源时,服务器长时间未返回完数据。导致IO阻塞。 其实不只是爬虫,很多时候一个函数很可能因为某种不可预知的事情,而有时很...
转载2018-01-25 15:36:071270 -
如何理解Python装饰器?
Python 装饰器使用非常地简单。任何会使用 Python 函数的人都可以学习使用装饰器: Python 123@somedecoratordef some_function(): ...
原创2018-01-25 15:16:30760 -
使用Redis SETNX 命令实现分布式锁
Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists。这系列的命令非常有用,这里讲使用SETNX来实现分布式锁。 用SETNX实现分布式锁 利用SETNX非常简单地实现分布式锁。例如:某客户端要获...
原创2018-01-24 14:50:51650 -
深入理解异步Web服务器 Tornado
这篇文章的目的在于对Tornado这个异步服务器软件的底层进行一番探索。我采用自底向上的方式进行介绍,从轮训开始,向上一直到应用层,指出我认为有趣的部分。 所以,如果你有打算要阅读Tornado这个web框架的源码,又或者是你对一个异步web服务器是如何工作的感兴趣,我可以在这成为你的指导。...
转载2017-11-22 14:24:421490 -
Python 中的黑暗角落(三):模块与包
如果你用过 Python,那么你一定用过 import 关键字加载过各式各样的模块。但你是否熟悉 Python 中的模块与包的概念呢?或者,以下几个问题,你是否有明确的答案? 什么是模块?什么又是包?from matplotlib.ticker import Formatter, Fixed...
转载2017-10-21 15:35:251610 -
Python 中的黑暗角落(二):生成器协程的调度问题
前作介绍了 Python 中的 yield 关键字。此篇介绍如何使用 yield 表达式,在 Python 中实现一个最基本的协程调度示例,避免 I/O 操作占用大量 CPU 计算时间。 协程及其特点 协程是一种特殊的子程序,它可以在特定的位置暂停/恢复(而不是像普通函数那样在...
转载2017-10-21 15:34:452710 -
Python 中的黑暗角落(一):理解 yield 关键字
Python 是非常灵活的语言,其中 yield 关键字是普遍容易困惑的概念。 此篇将介绍 yield 关键字,及其相关的概念。 迭代、可迭代、迭代器 迭代(iteration)与可迭代(iterable) 迭代是一种操作;可迭代是对象的一种特性。 很多数据都...
转载2017-10-21 15:34:0116460 -
Python envoy 模块源码剖析
Kenneth Reitz 是公认的这个世界上 Python 代码写得最好的人之一。抱着学习的心态,我阅读了 Reitz 写的 envoy 模块的源码,将笔记记录如下。 介绍 和 requests 模块一样,envoy 也是 Reitz 的作品,连官方描述都类似——Python...
转载2017-10-20 14:56:083050 -
数据库SQL优化大总结之 百万级数据库优化方案
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。 这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。 1.对查询进行优化,要尽量避免全...
转载2017-10-17 18:54:21680 -
条件复杂的sql语句查询
有三张表 分别为 会员表(member) 销售表(sale) 退货表(regoods) 会员表有字段 memberid (会员id,主键) credits(积分); 销售表有字段 memberid(会员id ,外键) 购买金额(MNAccount); 退货表中有字段memberid(会员i...
原创2017-10-17 18:00:101000 -
MySQL自动备份及灾难恢复
[转自51cto]http://bbs.51cto.com/thread-820965-1.html 当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损...
转载2017-10-13 19:39:032210 -
MYSQL性能优化
看到一篇很不错的文章,特别转来分享下。也许以后会用到。 1、分库分表 很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表members,查询起来非常之慢,同事的做法是将...
转载2017-10-13 19:34:501170 -
我必须得告诉大家的MySQL优化原理
说起MySQL的查询优化,相信大家收藏了一堆奇淫技巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你...
转载2017-10-13 17:47:241100 -
python使用json序列化datetime类型问题处理
使用python的json模块序列化时间或者其他不支持的类型时会抛异常,例如下面的代码: # -*- coding: cp936 -*- from datetime import datetime import json if __name__=='__main__': now = da...
原创2017-09-29 13:38:101270 -
不再以讹传讹,GET和POST的真正区别
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。 这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把GET改...
转载2017-09-28 09:54:421580 -
python json.dumps 中的ensure_ascii 参数引起的中文编码问题
在使用json.dumps时要注意一个问题 >>> import json >>> print json.dumps('中国') "\u4e2d\u56fd" 输出的会是 '中国' 中的ascii...
原创2017-09-26 19:31:324000 -
Scrapy爬虫笔记
Scrapy是一个优秀的Python爬虫框架,可以很方便的爬取web站点的信息供我们分析和挖掘,在这记录下最近使用的一些心得。 1.安装 通过pip或者easy_install安装: 1 sudo pip install scrapy ...
转载2017-09-26 18:59:361620 -
MySQLdb.cursors AttributeError: 'module' object has&
原来ubuntu 12.04 python-mysqldb只需要import MySQLdb就可以使用MySQLdb.cursors.DictCursor(字典游标) 不过最近不知道python的原因还是mysqldb的原因,应该是python-mysqldb版本问题吧, ...
原创2017-09-26 16:35:29960
-
- 学院
- 下载
- 消息