Python数据库连接池相关示例详细介绍

下面的内容主要是介绍Python数据库连接池应用于多线程环境中使用的具体方案的具体介绍。如果你对Python数据库连接池在其具体方案应用的相关步骤感兴趣的话,你就可以点击以下的文章,对其进行了解。

“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 成都创新互联是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于网站设计、成都网站建设、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!

示例:

 
 
 
  1. #-*-coding:utf-8-*-
  2. import threading,time,datetime
  3. import MySQLdb
  4. from DBUtils import PooledDB
  5. pool = PooledDB.PooledDB(MySQLdb,100,50,100,490,False,
    host='localhost',user='root',passwd='321',db='test',
    charset='utf8')  

默认打开的时候就创建了100个数据库连接。检查发现果然数据库中有100个

 
 
 
  1. class MyThread(threading.Thread):
  2. def __init__(self,threadName):
  3. self.conn = pool.connection()   

直接从数据库连接池中提取

 
 
 
  1. threading.Thread.__init__(self,name=threadName)
  2. def run(self):
  3. cursor=self.conn.cursor()
  4. print "hello--->",self.getName()
  5. file_objct = open('8.txt','a+')
  6. file_objct.write(self.getName()+'\n')
  7. file_objct.close()
  8. #cursor.execute("call loaddate();")
  9. #self.conn.commit()
  10. time.sleep(10)
  11. def __del__(self):
  12. self.conn.close()
  13. self.conn = None 
  14. for i in range(5):
  15. obj = MyThread(str(i))
  16. obj.start()

如果我开480个线程的话 数据库显示的正是480个连接!maxconnections: ***允许连接数量(缺省值 0 代表不限制)如果我现在将代码调整如下:

 
 
 
  1. #-*-coding:utf-8-*-
  2. import threading,time,datetime
  3. import MySQLdb
  4. from DBUtils import PooledDB
  5. pool = PooledDB.PooledDB(MySQLdb,100,50,100,400,False,
    host='localhost',user='root',passwd='321',db='test',
    charset='utf8')
  6. class MyThread(threading.Thread):
  7. def __init__(self,threadName):
  8. self.conn = pool.connection() 
  9. threading.Thread.__init__(self,name=threadName)
  10. def run(self):
  11. cursor=self.conn.cursor()
  12. print "hello--->",self.getName()
  13. file_objct = open('8.txt','a+')
  14. file_objct.write(self.getName()+'\n')
  15. file_objct.close()
  16. #cursor.execute("call loaddate();")
  17. #self.conn.commit()
  18. time.sleep(10)
  19. def __del__(self):
  20. self.conn.close()
  21. self.conn = None 
  22. for i in range(402):
  23. obj = MyThread(str(i))
  24. obj.start()  

连接池***的数目才400 。

网站栏目:Python数据库连接池相关示例详细介绍
分享链接:http://www.gawzjz.com/qtweb/news35/165385.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联