Part 93 Protecting shared resources from concurrent access in multithreading