gpt4 book ai didi

Java : Multi-threaded linked list access synchronization

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:35:50 24 4
gpt4 key购买 nike

我的方法在这里可能是错误的(或实现得更好)。如果是这样,请让我知道一个更好的主意。

我正在尝试实现一个适用于本地文件或网络的形状文件阅读器。但是,一些 shapefile 非常大,可能需要一段时间才能完全加载。我想将加载类分离到它自己的线程中。我还希望主线程在加载程序仍在加载时从加载程序中提取加载的数据,以便立即显示。

为了实现这一点,我想我可以在加载器中维护一个链表,其中包含已经完全加载的元素。主线程可以轮询加载器以查看是否已加载任何元素,并提取链表的头部,这会将其从加载器中删除。

我可以使用什么机制来确保主类和加载器类不会同时尝试访问链表的头部?我知道这涉及到同步,但我对 Java 线程一窍不通。只需要有人为我指明正确的方向。

如果您有完全不同的想法,我会洗耳恭听。谢谢

最佳答案

这听起来不像是生产者-消费者问题吗?最简单的方法是使用 BlockingQueue

例如:使用此处显示的概念.. http://www.java2s.com/Code/Java/JDK-6/ProducerandconsumerbasedonBlockingQueue.htm

关于Java : Multi-threaded linked list access synchronization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8033147/

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