multithreading design patterns | Comidoc