2011-11-07 136 views
3

我的方法在这里可能是错误的(或者执行得更好)。如果是这样,请让我知道一个更好的主意。Java:多线程链表访问同步

我试图实现一个形状文件阅读器,与本地文件或通过网络工作。但是,一些shapefile文件很大,可能需要一段时间才能完全加载。我想将加载类分成它自己的线程。我还想让主线程在加载时从加载器中提取加载的数据,因此它可以立即显示。

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

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

如果你完全不同的想法,我全部耳朵。 谢谢

回答