Identifying blocking threads
A thread, from the perspective of interactions with other threads, is divided into two kinds: non-blocking thread and blocking thread. A non-blocking thread is usually a thread that does not block any other thread.
A blocking thread means a thread that does operations that often force the execution context to wait for other operations. By nature, in this context of operations, there can be many kinds of operations and interactions with other kinds of subsystem components such as I/O and CPU thread counter such as the operation performed in System.Threading.Thread.Sleep
.
Overview of the background technical reasons for the blocking nature of I/O
I/O is never separated from the implementation and usage of our application, especially applications that deal with networking and sending commands to an output device outside the scope of the subsystem, such as printers. It is often ignored, but it is becoming relevant that as a running application is expected to be as...