It does not matter whether computeList depends on myList or not, if there is only read access to the contents of myList. No synchronization problem can occur.
If you do not use volatile for myList, then it may turn out that get returns the old myList, although a strictly installed one already replaced the list. If you do not mind this situation (this may lead to the two threads seeing different values), then you do not need variability.
source share