在Python中使用多线程连接数据库可以通过使用threading
模块创建多个线程。下面是一个简单的示例代码,演示如何在多线程中连接数据库:
import threading
import pymysql
def connect_database():
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='password', database='test')
cursor = conn.cursor()
# 执行SQL查询
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
# 打印查询结果
for row in rows:
print(row)
# 关闭数据库连接
cursor.close()
conn.close()
# 创建多个线程
threads = []
for i in range(5):
thread = threading.Thread(target=connect_database)
threads.append(thread)
# 启动所有线程
for thread in threads:
thread.start()
# 等待所有线程结束
for thread in threads:
thread.join()
在上面的代码中,我们使用了threading.Thread
类创建了5个线程,每个线程都会连接数据库并执行一次查询操作。然后使用start()
方法启动所有线程,并通过join()
方法等待所有线程结束。
需要注意的是,多线程连接数据库时要确保对数据库连接和查询操作的线程安全性进行处理,避免出现数据竞争和异常情况。可以考虑使用线程锁或连接池等方式确保线程安全。