如何从两个线程安全地写入同一文件?

时间:2018-11-28 13:05:47

标签: python multithreading file pyqt

这里是上下文:我制作了一个Qt5程序来驱动一个源表,它将电信号施加到样品上并测量其反应,并实时将数据绘制到matplotlib。看起来像这样:enter image description here

绘图由主线程完成,测量/应用在另一个线程中完成,以便显示不会降低测量速度。

程序还具有一个按钮,可以从图中获取所有可用数据并将其存储在.csv文件中,但是我正在考虑让它实时地逐个写入值。我想为用户添加一个可选输入以添加描述,因此存储的数据将是实际的I / V /时间列,有时会被诸如“ t = 60,样本闻到有趣”之类的文本打断。将描述行写入文件很容易,这只是一个连接到微小功能的按钮。问题是我的文件已经在其他地方打开。 这是一个问题吗?,我实际上不知道,如果是这样的话:

当测量线程打开文件时,如何从主线程安全地编写此附加描述文本?

谢谢。

1 个答案:

答案 0 :(得分:1)

  • 在主线程中打开文件
  • 将文件句柄传递给其他线程
  • 在每个线程中,始终在写入文件之前将其锁定