همانطور که در بخش پروسس تشریح کردیم هر پروسس از حداقل یک ترد تشکیل شده تا از آن به عنوان واحد اجرایی برای خود استفاده کند .
در واقع پروسس بدون ترد از دید سیستم عامل دلیلی برای ادامه کار ندارد و پروسس را از بین میبرد .
یکی از کاربرد های ترد ایجاد پردازش همزمان در پروسس ها هست ، هر چند میتوان با ایجاد چند پروسس نیز به پردازش همزمان رسید اما برای ارتباط و گرفتن خروجی از هر ترد و استفاده در ترد دیگر به مشکل خورده (هرچند با روش هایی میتوان میان آنها حافظه به اشتراک گذاشت که در قسمت های بعد مفصل به آنها اشاره میکنیم) .

از ترد ها میتوان برای بهینه تر کردن برنامه استفاده کرد ، ترد ها در ویندوز کوچک ترین واحد پردازش میباشند که توسط برنامه نویس درون یک برنامه تعریف شده و سپس با فراخوانی api مناسب ترد ساخته و در صف ترد ها برای ورود به پردازنده قرار میگیرند .
هر برنامه یک ترد اصلی دارد که میتوان درون آن تردهای دیگر و درون هرکدام ترد هایی دیگر و ... ساخت .

هر ترد شامل یک stack و یک TLS(Thread Local Storage) میباشد.(در شکل قسمت پروسس قابل مشاهده میباشد)

هر ترد که برای اجرا وارد پردازنده میگردد task نامیده میشود . ویندوز ، سیستم عاملی چند برنامه ای (Multiprogramming) و چند وظیفه ای (Multitasking) را پشتیبانی میکند . در ویندوز برای پیاده سازی چند وظیفه ای از مدل (Multithreading) استفاده میشود .
در سیستم عامل های مبتنی بر یونیکس از فیبر (Fiber) برای پیاده سازی چندوظیفه ای استفاده میشود . فیبر در مود کاربر تعریف شده و زمانبندی آن توسط برنامه تنظیم میشود .
به منظور قابل حمل بودن برنامه های یونیکس به ویندوز این مدل نیز توسط ویندوز پشتیبانی میشود (برای اطلاعات بیشتر به msdn مراجعه شود) .
Thread Model