在这个应用程序中会发生什么:当对特定图像发出请求时,应用程序检查图像是否已存在于磁盘上;如果存在则返回图像.
当磁盘上不存在映像时,我的问题就开始了.在这种情况下,对于磁盘上不存在的同一图像,同时发出两个请求.当两个线程尝试同时在磁盘上创建相同的文件时,会出现问题.
为了解决这个问题,我尝试做的是在创建磁盘映像时创建一个Mutex.但它有一个问题:由于大量的同时请求导致服务器负载很大,服务器崩溃了.
我想问一下你的想法是什么来解决这个问题.或者你会怎么做?
谢谢.
解决方法 您可以尝试以下模式:>尝试阅读图像(如果成功,则完成)
>尝试使用写锁定创建图像
>仅在“文件在使用异常”中,小延迟(毫秒)
>返回步骤1(重试)
使延迟非常小,只比创建图像所需的时间稍微大一点.
实施重试限制,最多3次左右.
这将允许您使用现有的(文件)锁定机制
总结以上是内存溢出为你收集整理的c# – 锁定文件创建的最佳方式(最佳性能)全部内容,希望文章能够帮你解决c# – 锁定文件创建的最佳方式(最佳性能)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)