void Enter
Enter the critical section.
Result: stored in self (calling object)
Remarks:
Guarantees the sequence of threads that pass through, to match the order in which they called Enter.
Important: Always need to call "Leave" before calling "Enter" on the same critical section by the same thread again.