As we have already said, threads are one of the most important entities at the runtime. Threads are at the very core of what we say multitasking. When an application performs more than one task at one time, it does so using threads. Threads are actually a part of processes and are synonymous to ‘a single task’. When an application needs to execute more than one task, it has to use more than one thread in its process. For example, when you use Microsoft Word for creating a document, it takes care of formatting, spellings, grammar, page layouts and so on at one time. This is done by using multiple threads, all of which are a part of the process which creates the window for the Microsoft Word. A process must have at least one thread. A process with a single thread is called as a single threaded process while the one with more than one thread is called multithreaded.
A multi-threaded application can leverage the benefit of multiple processing cores of modern processors. This is because each processor can only execute one thread at a time.
Since threads are one of the most important runtime entities, it is important that you analyze then as a part of your analysis of the effect of a product on the Attack Surface of the operating system. Just like any other entities, thread analysis helps you understand the multitasking ability of your product and how efficient it will be on a multiprocessor machine when compared to one with only a single processor. If you use Attack Surface Analyzer to find how many threads are created as a part of a particular action in the product, you will also come to know how it is actually working behind the scene to some extent which would help you (or IT administrator or developer) plan its usage patterns and best practices.