1. A method for executing software utilizing shared memory space, comprising: executing a call to a first asynchronous method containing at least one instruction, wherein the first asynchronous method accesses a shared memory space which may be used by at least one other asynchronous method executing in parallel to the first asynchronous method; determining whether the shared memory space has been altered by the at least one other asynchronous method executing in parallel to the first asynchronous method since the first asynchronous method started executing; and if the shared memory space has not been altered by at least one other asynchronous method since the first asynchronous method started executing, then committing any changes made to the shared memory space by the first asynchronous method.