A thread is a multitask feature of a program .Is diferent from a process or a task ,Where the operating system has to save the complete status and memory of the program .In a thread very minimum is saved and because of that is more efficient.So instead of a making a program with several process .you create a program with multi threads .The OS has to be a MultiThread capable .The creation and schedulling of the running of the threads are OS services.