Thread is the information needed to serve one individual user or a particular service request. If multiple users are using concurrent programs or requests from other programs that are occurring, threads are created and maintained for each process.
Threads allow the program to know the user is logged in the program interchangeably and will re-enter on different user names. One of the thread information is stored by storing it in a special data area and placing the address of the data area in the register. The operating system always keeps the contents of the registers when the program interrupted and restores when giving the program control again.
1. Static Threading
This technique is commonly used for computers with multiprocessors chips and other types of shared-memory computers. This technique allows the shared memory thread to be available, using the program counter and execute the program independently. The operating system places one thread on the processor and exchanges it with another thread that wants to use the processor.
2. Dynamic Thread
This technique is a development of previous techniques that aim for convenience because with it programmers do not have to bother with communication protocols, load balancing, and other complexity that exist in static threading. This concurrency platform provides scheduler that load balacing automatically.
Although the platform is still under development but generally supports two features: nested parallelism and parallel loops.