摘要: IOError: [Errno 32] Broken pipeException in thread Thread-1:Traceback (most recent call last):File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_innerself.run()File "/home/mii/dianshang_test/dianshang_new_test/dianshang_current.py", line 77, in runself.c.crawl_step_ 阅读全文
posted @ 2012-08-28 10:04 congbo 阅读(3424) 评论(0) 推荐(0) 编辑
摘要: python 数据库连接池可以使用DBUtils模块。示例程序:#!/usr/bin/env python# encoding:utf8import sysreload(sys)sys.setdefaultencoding("utf-8")import timeimport MySQLdbfrom DBUtils.PooledDB import PooledDBimport lsconstSLEEP_FOR_NEXT_TRY = 3class DBTools: def __init__(self, host, user, passwd, db): self.host = h 阅读全文
posted @ 2012-08-28 09:38 congbo 阅读(2246) 评论(0) 推荐(0) 编辑
摘要: 如:进程池个数为7,需要完成的任务为54,如果用满进程池,有以下几种简单的分法:7 7 7 7 7 7 128 8 8 8 8 8 68 8 8 8 8 7 7第三种分法最平均:54 754=(8*5)+(7*2)7=54/78=7+15=54%72=7-5python 实现:#!usr/bin/env python#encoding=utf-8def division(sum, num): remainder = sum % num quotient = sum / num result = [] for i in range(r... 阅读全文
posted @ 2012-08-27 21:40 congbo 阅读(3744) 评论(0) 推荐(0) 编辑
摘要: 错误一:File "/usr/lib/pymodules/python2.6/MySQLdb/__init__.py", line 81, in Connectreturn Connection(*args, **kwargs)File "/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 170, in __init__super(Connection, self).__init__(*args, **kwargs2)_mysql_exceptions.OperationalError: 阅读全文
posted @ 2012-08-27 14:24 congbo 阅读(6088) 评论(0) 推荐(0) 编辑
摘要: 示例1:import multiprocessingdef run(msg): print '%s, it works!' % msgdef start_process(): print 'Starting',multiprocessing.current_process().nameif __name__=='__main__': pool = multiprocessing.Pool(processes=2, initializer=start_process,) pool.apply_async(run('congbo')) 阅读全文
posted @ 2012-08-24 13:39 congbo 阅读(9253) 评论(5) 推荐(0) 编辑
摘要: 作用:建立在thread模块之上,可以更容易地管理多个执行线程。通过使用线程,程序可以在同一个进程空间并发地运行多个操作。threading模块建立在thread的底层特性基础上,可以更容易地完成线程处理。1、调用函数要使用Thread,最简单的方法就是用一个目标函数实例化一个Thread对象,并调用start()让它开始工作。 1 import threading 2 3 def worker(num): 4 print 'worker' 5 return 6 7 threads = [] 8 for i in range(5): 9 t = threading.... 阅读全文
posted @ 2012-08-23 16:43 congbo 阅读(4497) 评论(0) 推荐(0) 编辑
摘要: 作用:提供一个API来管理进程。multiprocessing模块包含一个API,它基于threading API可以在多个进程间划分工作。有些情况下,multiprocessing可以作为临时替换,取代threading来利用多个CPU内核,避免Python全局解释锁带来的计算瓶颈。类似python threading 两种创建方式,python multiprocess 也有两种创建方式:1、调用函数要创建第二个进程,最简单的方法就是用一个目标函数实例化一个Process对象,并调用start()让它开始工作。 1 import multiprocessing 2 3 def work.. 阅读全文
posted @ 2012-08-23 16:17 congbo 阅读(1580) 评论(0) 推荐(0) 编辑
摘要: python自2.6开始提供了多进程模块multiprocessing,进程池使用multiprocessing.pool,pool的构造如下:multiprocessing.Pool([processes[, initializer[, initargs[, maxtasksperchild]]]])processes表示pool中进程的数目,默认地为当前CPU的核数。initializer表示新进程的初始化函数。initargs表示新进程的初始化函数的参数。maxtasksperchild表示每个进程执行task的最大数目(该参数解释见python 进程池1 - Pool使用简介)。Poo 阅读全文
posted @ 2012-08-23 15:31 congbo 阅读(16077) 评论(0) 推荐(0) 编辑
摘要: 有些情况下,所要完成的工作可以分解并独立地分布到多个工作进程,对于这种简单的情况,可以用Pool类来管理固定数目的工作进程。作业的返回值会收集并作为一个列表返回。(以下程序cpu数量为2,相关函数解释见python 进程池2 - Pool相关函数)。 1 import multiprocessing 2 3 def do_calculation(data): 4 return data*2 5 def start_process(): 6 print 'Starting',multiprocessing.current_process().name 7 8 if __nam.. 阅读全文
posted @ 2012-08-23 15:28 congbo 阅读(37270) 评论(0) 推荐(0) 编辑
摘要: 相关代码如下:queue = multiprocessing.Queue()db = HandleSQL(conf_db, data_db, queue)错误信息如下:Exception in thread Thread-1:Traceback (most recent call last): File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner self.run() File "/usr/lib/python2.6/threading.py", line 484, 阅读全文
posted @ 2012-08-22 13:58 congbo 阅读(8084) 评论(0) 推荐(0) 编辑