gpt4 book ai didi

java - 两个线程从不同的端读取相同的列表

转载 作者:行者123 更新时间:2023-11-30 06:37:00 25 4
gpt4 key购买 nike

我有一个列表,我需要通过两个线程遍历该列表。一种是从上到下阅读,另一种是从下到上阅读。当它们相交时,阅读应该停止。

为了迭代列表,我可以使用 ListIterator,但我无法想象这些线程如何从同一个列表中读取?

最佳答案

由于线程只是读取,因此无需使用列表的线程安全版本。

为了确保线程在相交时停止读取,您需要同步它们,因此在读取另一个项目之前,它们应该检查该项目是否可用。实现此目的的一种简单方法是将当前索引存储在每个线程中,并让其他线程可以访问该索引(确保同步该索引)。但这会导致大量开销。

更好的想法是分批工作。将列表分成几个部分,例如 16 个项目。然后线程可以在需要检查交集之前读取整个批处理。

关于java - 两个线程从不同的端读取相同的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45053552/

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