Archive for category Multithreading

.NET Thread Pool vs. Windows Thread Pool

In the previous post we learned how Windows handles slow devices. Completion Port is an effective tool to handle I/O results. Completion Ports have Thread Pool like features, and it is not a coincident. Windows implements a Thread Pool, and it is partially based on Completion Ports. It may sound strange, because Thread Pool is […]

Leave a comment

Thread pool for I/O – Completion Ports

CPUs are incredibly fast, but sometimes they need to work with slow devices. How to handle these devices and let the CPU working efficiently?

Leave a comment

Multithreading – Introduction II – Thread Pools

Multi core CPUs can run threads parallel, but it is not that trivial to decide when to start new threads. Creating threads is expensive, and using them in a wrong way can cause performance problems.

Leave a comment

Multithreading – Introduction I

Writing multithreaded applications has been an option for a while in Windows. It was possible even under Windows 95. It is easy to answer that why it became a hot topic to write multithreaded programs in the last couple of years. Newer generation microprocessors are built with multiple cores, so they are able to execute more threads in parallel. But what was the benefit of writing multithreaded applications 20 years ago for single core processors?

Leave a comment