1. A method comprising: providing a cache block having a load value in an exclusive state to a first cache associated with a first core and marking an entry in a directory for the cache block to be in the exclusive state, the first core executing a first thread; and providing the same cache block having the same load value in the exclusive state to a second cache associated with a second core and marking the entry to be in a shared-exclusive state while the cache block is in the exclusive state in the first cache, responsive to determining that the second core is executing a second thread that is a redundant thread to the first thread so that the first and second cores have exclusive concurrent access to the same cache block including the same load value and each can write an updated value to the same load value of the same cache block in the corresponding first and second caches, wherein if the second core is determined to not be executing the redundant thread downgrading the cache block in the first cache and providing the same cache block to the second cache in a requested state.