ArrayList是否可能在单作者 - 多读者系统中失败?

ccl*_*eve 5 java concurrency multithreading

List需要多线程调用.将只有一个作家,这个作家将添加元素,不做任何其他事情.永远不会删除或修改元素.许多并发读者线程将调用list.size()list.get(index).

我们必须假设有时内部数组需要在添加元素时增长.

我可以逃避使用普通ArrayList,或者我是否需要实现一些花哨的并发结构以避免异常?

小智 -1

我的建议是使用信号量来避免任何异常,这样您就可以随时控制哪个读者正在阅读列表

  • 信号量在这里似乎不是正确的选择。我会选择 [`ReadWriteLock`](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReadWriteLock.html)。 (2认同)