gpt4 book ai didi

java - 如何允许多个方法同时运行,而某些其他方法不运行?

转载 作者:行者123 更新时间:2023-11-29 03:39:03 27 4
gpt4 key购买 nike

抱歉标题的措辞,没有解释清楚。如果有人可以编辑它,那就太好了:)

我有四种方法,访问共享状态。目前它们不是线程安全的。共享状态是一个列表。其中两个方法修改列表,两个迭代它。可以简单地同步所有方法,但这会导致性能降低 - 只要没有修改方法在运行,迭代方法在多个线程中同时运行是完全安全的。

一种允许多个读取器运行或需要单个写入器的锁定方法。

private List<T> list;
public void insert(T t) {// Write shared state
list.add(t);
}
public void remove(T t) {// Write shared state
list.remove(t);
}
public void doStuff(T t) {// Read shared state
// iterate list and do stuff
}
public void doOtherStuff() {// Read shared state
// iterate list and do stuff
}

最佳答案

可能 ReadWriteLock符合您的需求。线程 ab 应该获取 write 锁,而线程 cd 应该获取阅读一个

关于java - 如何允许多个方法同时运行,而某些其他方法不运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14046984/

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