if the thread has ownership of the current state otherwise the thread goes back to sleep and wakes up at a later period to check if the current state has been changed once the finite state machine state sequence is started step 300 the finite state machine state sequence cycles through the states and goes to the next state step 302 those skilled in the art will appreciate that upon beginning the finite state machine state sequence the first state may be one of many start states of the finite state machine and that subsequent states will be determined by both the structure of the finite state machine e g as shown in fig1 and by the actions of the threads operating within the finite state machine for example if the initial state is an ownership transfer state that is co owned by all threads the first thread to wake will transition the current state to one of its control states which are different for each thread once the finite state machine has transitioned to the next state step 302 a check is made to determine whether the next state is a producer ownership state step 304 or a consumer ownership state step 306 if the next state is a producer ownership state a producer control operation is executed step 308 if the next state is a consumer ownership state a consumer control operation is executed step 310 those skilled in the art will appreciate that control operations relevant to sharing resources between multiple threads do not have to be performed in every producer ownership state or consumer ownership state and that other.