Multi-threaded programming learning case code