multithreading lesson 1 to 3