gpt4 book ai didi

concurrency - 并发访问对象组

转载 作者:行者123 更新时间:2023-12-02 04:07:20 25 4
gpt4 key购买 nike

我正在尝试开发一个由线程池组成的应用程序,并使用工作窃取算法同时执行任务。

这些任务

  • 访问一组预定义的对象;
  • 必须“原子地”获得对其访问的所有对象的读/写权限,然后才能实际运行;
  • 完成操作(并保证最终完成)后,释放它们获取的对象。

  • 解决此问题的一种可能方法是让每个线程一次拾取一个任务,然后尝试使用预定义的顺序锁定每个对象。如果至少一个失败,则释放所有锁,然后继续执行另一项任务。

    但是,此方法增加了具有大对象依赖性的任务饿死的可能性,甚至可能导致 Activity 锁定。

    还有另一种方法可以在最大化并发性的同时获取一组锁吗? (没有全局锁定)还是以不再需要的方式更改系统?
    如果是这样,有什么好的论文吗?

    ps:正如蒂顿回答的那样,这是“用餐哲学家”问题的广义版本。我正在寻找非集中式解决方案,尤其是在高负载(添加和删除任务)中表现良好的算法。

    最佳答案

    您的问题称为Dining Philosophers。您可以在此关键字下找到所有需要的文献:-)。

    关于concurrency - 并发访问对象组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6905110/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com