<P> Other implementations of interpreted programming languages, such as Tcl using the Thread extension, avoid the GIL limit by using an Apartment model where data and code must be explicitly "shared" between threads . In Tcl each thread has one or more interpreters . </P> <P> Event - driven programming hardware description languages such as Verilog have a different threading model that supports extremely large numbers of threads (for modeling hardware). </P> <P> A standardized interface for thread implementation is POSIX Threads (Pthreads), which is a set of C - function library calls . OS vendors are free to implement the interface as desired, but the application developer should be able to use the same interface across multiple platforms . Most Unix platforms including Linux support Pthreads . Microsoft Windows has its own set of thread functions in the process. h interface for multithreading, like beginthread . Java provides yet another standardized interface over the host operating system using the Java concurrency library java. util. concurrent . </P> <P> Multithreading libraries provide a function call to create a new thread, which takes a function as a parameter . A concurrent thread is then created which starts running the passed function and ends when the function returns . The thread libraries also offer synchronization functions which make it possible to implement race condition - error free multithreading functions using mutexes, condition variables, critical sections, semaphores, monitors and other synchronization primitives . </P>

E. why threads are important in network programming