使用数据库功能为线程实现锁定系统

我目前正在处理与线程和锁定有关的问题。假设您具有一个具有以下功能的数据库:

  • count(o):返回与查询o匹配的文档数
  • find_many(o):o是一个字典,表示精确过滤器 在商店中匹配,并且此操作返回对象数组 匹配过滤器
  • find_one(o):o是一个字典,表示完全匹配的过滤器 在商店中,此操作将返回与过滤器或无匹配的对象
  • delete_insersts_on_failure(bulk_o):删除列表中的所有对象 bulk_o
  • insert_many(bulk_o):将列表bulk_o中的对象插入数据库中
  • insert_one(o):将对象o插入数据库中
  • delete_one(o):
  • delete_many(o):
  • update_one(obj_filter,更新):
  • update_many(obj_filter,更新):

因此,我必须使用这些数据库操作为执行一段代码的多个线程(对文本文件的写操作)实现一个锁定系统。

每个线程都有一个唯一的ID。

我解决这个问题的方法:由于每个线程都有一个唯一的ID,因此可以做的是,我们可以跟踪哪个线程当前持有锁的值(例如1)。所有其他试图获取该锁的线程锁也将以不同的数字(例如0)在数据库中。一旦持有锁的线程释放了锁,就可以选择值为0的线程,然后其中一个可以获取锁。

任何人都可以共享的任何资源(论文/书籍)将不胜感激。

xaut2008 回答:使用数据库功能为线程实现锁定系统

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3090969.html

大家都在问