I have two `Future`s, the second of which starts after the first ended. Both write to the same `ArrayBuffer` instance, but since they are executed serially (not at the same time), I consider them not acting concurrently.

However, I know there is the `@volatile` annotation for variables shared among two or more threads (`@volatile` disables caching).

Since after the first thread finishes, inside the `ArrayBuffer` instance, there might be some **caching** going on that makes it impossible for the second thread to see the `ArrayBuffer`'s real state: I am not sure whether it is safe to use `ArrayBuffer` this way.

**Is it true that caching might be a problem in my situation, and if this is the case: Is there a recommended way to make `ArrayBuffer` use `@volatile` internally?**