Python分段错误?

时间:2017-03-01 08:24:44

标签: python database multithreading

首先,我甚至不知道在python中可能存在内存错误/段错误。感谢学习新东西!

我创建了这个数据库

database = DBManager(dbEndpoint,dbUser,dbPass,dbSchema)

然后我尝试在线程中使用它

def stateTimeThreadStart():
     database.getTable('CLIENTS')

threads = []
threads.append(threading.Thread(name='State Updater', target=stateTimeThreadStart, args=()))
threads[0].start()

输出

Segmentation fault: 11

这到底是怎么回事?它肯定与database.getTable(' CLIENTS')有关,因为当我发表评论时,问题不会发生。另外,我也试图将数据库传递给线程,没有运气。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

由于数据库连接器,可能会出现Python中的分段错误。用于连接数据库的驱动程序通常在C基础上编码,因此在RAM过载或其他原因导致分段错误时。

您使用多线程这一事实进一步加剧了这种情况。如果不仔细处理多线程,则已知大多数数据库驱动程序会抛出分段错误。大多数数据库驱动程序协议无法一次使用同一连接处理多个线程。

经验法则是不在线程之间共享单个连接。