zoukankan      html  css  js  c++  java
  • Python数据库连接池DButils

    DButils

     

      DButils是python的一个实现数据库连接池的模块

      两种模式:

      1.为每一个线程创建一个链接,即使线程即使调用了close()方法,也不会关闭,只是把线程放到连接池,供自己再次使用,当连接关闭时,线程连接自动关闭。

    模式一

      2.创建一批连接到连接池,供所有线程共享使用

      注意:由于pymysql,mysqlDB中的threadsafety值为1,所有线程共享连接

    模式二

      PS:关于pymysql模块,如果没有单线程的情况,连接MySQL数据库没有问题,但如果要是多线程,就需要加锁,一旦加锁,后面的线程就得等待,势必会降低使用效率。

     1 import pymysql
     2 import threading
     3 from threading import RLock
     4 LOCK = RLock()
     5 CONN = pymysql.connect(host='127.0.0.1',
     6                        port = 3306,
     7                        user = 'root',
     8                        password = '123',
     9                        database = 'ok1',
    10                        charset = 'utf8'
    11                        )
    12 def task(arg):
    13     with LOCK:
    14         cursor = CONN.cursor()
    15         cursor.execute('select * from book')
    16         result = cursor.fetchall()
    17         cursor.close()
    18         print(result)
    19 for i in range(10):
    20     t = threading.Thread(target=task,args=(i,))
    21     t.start()
    加锁
     1 import pymysql
     2 import threading
     3 CONN = pymysql.connect(host='127.0.0.1',
     4                        port=3306,
     5                        user='root',
     6                        password='123',
     7                        database='ok1',
     8                        charset='utf8')
     9 
    10 def task(arg):
    11     cursor = CONN.cursor()
    12     cursor.execute('select * from book')
    13     result = cursor.fetchall()
    14     cursor.close()
    15     print(result)
    16 for i in range(10):  #1时不会报错
    17     t = threading.Thread(target=task, args=(i,))
    18     t.start()
    不加锁
     
     
  • 相关阅读:
    2018最新php笔试题及答案(持续更新)
    快速上手模板制作
    春节期间小游戏同时在线人数最高达2800万人/小时
    公众平台新增修改文章错别字功能 每篇文章允许被修改一次仅限正文内五个字
    微信6.6.2版更新:支持两个账号一键切换
    小程序支持打开APP了 还有小程序的标题栏也可以自定义
    小程序发布重磅数据:日活跃用户数1.7亿、已上线小程序58万个,覆盖100万开发者、2300个第三方平台
    张小龙2018PRO版微信公开课演讲全文 透露2018微信全新计划
    除了跳一跳还有16款微信小游戏可以玩
    小游戏里潜藏着600亿的大市场
  • 原文地址:https://www.cnblogs.com/xiao-xue-di/p/10533258.html
Copyright © 2011-2022 走看看