python多线程写入数据库

在 Python 中,可以使用多线程来实现数据写入数据库的任务,从而提高写入效率。以下是一个简单的多线程写入数据库示例代码:

import sqlite3 import threading import time 1. 定义数据库名称和表名称 db_name = 'test.db' table_name = 'data' 1. 定义数据列表 data_list = [(i,) for i in range(100)] 1. 定义线程数量 num_threads = 4 1. 创建数据库连接和游标对象 conn = sqlite3.connect(db_name) cursor = conn.cursor() 1. 创建数据表 cursor.execute('CREATE TABLE IF NOT EXISTS {} (id INTEGER PRIMARY KEY)'.format(table_name)) 1. 定义线程函数 def write_thread(data): cursor.executemany('INSERT INTO {} (id) VALUES (?)'.format(table_name), data) conn.commit() 1. 创建线程列表并启动 threads = [] for i in range(num_threads): start = int(len(data_list) / num_threads * i) end = int(len(data_list) / num_threads * (i+1)) thread = threading.Thread(target=write_thread, args=(data_list[start:end],)) thread.start() threads.append(thread) 1. 等待线程执行完成 for thread in threads: thread.join() 1. 关闭数据库连接 conn.close() print('写入完成')