David M Beazley (http://www.dabeaz.com)
The following visualizations show thread scheduling when an I/O-bound thread must compete with a CPU-bound thread. In this test, the I/O bound thread receives and echos a series of infrequently sent UDP packets. Zoom into the green spikes to see how the interpreter switches from the CPU-bound thread to the I/O handler. It's not obvious from the initial view that there is a difference, but as you zoom in on the second image you'll start to see thrashing. You can also view a OS-X version of this page.
Tests were conducted on the following system: