1. A method, performed by a processor, for speculative permission acquisition for access to a shared memory, the method comprising: receiving a store from a processor core to modify a first cache line in a first cache, wherein the first cache line in the first cache and a second cache line in a second cache are in a shared state and comprise a same data content; in response to receiving the store, marking the first cache line as speculative; modifying the first cache line in accordance with the store; and upon receiving a modification permission that is determined based on a current state of the second cache line in the second cache, committing the store in the first cache line in the first cache.