2010-06-14 62 views
3

当GD库正在访问它时,是否可以锁定文件以阻止它被打开?停止多个会话同时访问同一个文件

我期望实现的目标类似于数据库的'serialzable'级别的隔离......我想确保一次只有一个会话/用户可以访问图像以停止“脏读”。

我的应用程序允许用户将选择图像添加到更大的图像。

例如

  • 大的图像是空
  • 拉吉&珍妮特上传他们的图片
  • Raj的会话打开大图。
  • 1ms后珍妮特的会议 打开大图像。
  • Raj的过程中添加的他的形象和 保存原图
  • 1毫秒后珍妮特的会议 增加了他的形象,并保存其大图像的 版本。
  • 因此,Raj的图像不在 最后的图像,珍妮特的版本 覆盖它。

我希望能够说清楚。

+0

谢谢您的投票! – Pablo 2010-06-14 11:14:53

回答

2

结账flock。您可以锁定正在使用的文件,也可以在文件系统中的其他位置创建一个“锁定文件”,以供您的所有脚本检查。

+0

它看起来很完美,我唯一的担心是如果某种方式永久锁定文件。有没有办法防止这种情况发生? – Pablo 2010-06-14 11:09:57

+0

当文件关闭时,锁被释放,所以唯一的麻烦是如果你的进程挂起而没有关闭(即变成僵尸进程)。 – 2010-06-14 17:39:56

相关问题