Threads are generally referred to as lightweight processes and executes different parts of a program and shares memory, file descriptors and system resources. We explore multithreading creation of threads with free, member function, functor object, lambda expression, race condition with mutex