【发布时间】:2014-03-02 05:31:24
【问题描述】:
以下代码sn-p:
HDFStore = pandas.io.pytables.HDFStore
lock = threading.RLock()
with lock:
store = HDFStore('my_datafile.hdf','r')
data_frame = store['my_series']
store.close()
return data_frame['my_column']
是为了响应web请求而执行的,所以它可能同时在多个线程上执行。也有可能在调用 store.close 之前就中断了执行。
我遇到了一些无法重现的问题(HDFStore 库中的异常或返回的空数据)。
使此代码线程安全并确保文件在异常时正确关闭的正确方法是什么?
通过一些调查,我发现 HDFStore 具有用于打开文件的缓存机制......也许这可能是问题所在?
【问题讨论】:
标签: python multithreading pandas pytables hdfstore