1. A method of operating a multi-core processor, where each processor core is provided with its own private cache and access to a common memory, the method comprising executing a processing thread on a selected first processor core and implementing a normal access mode for executing an operation within said processing thread and comprising allocating sole responsibility for writing data to given blocks of said common memory, to respective processor cores, the method further comprising implementing a speculative execution mode switchable to override said normal access mode, the speculative execution mode comprising: upon identification of an operation within said processing thread, transferring responsibility for performing said operation to at least a plurality of second processor cores, including copying data from a given block of said common memory to the private cache of each of said second processor cores, wherein each of said second processor cores is allowed to modify the data in its own private cache without making the changes visible to other processor cores; upon completion of said operation at the second processor cores, temporarily allocating sole responsibility for writing data to said given block of said common memory to the one of said processor cores deemed to have successfully performed said operation, and resuming execution of said processing thread at said first processor core.