multi threads bad example
GuardedSuspension Design pattern