If the drain is large enough, I suppose.
I have a multi-threaded c# application Ive been hacking on for several months, and several things I have noticed in VS 2010 is that debugging is definitely not linear. In fact, the only way I have been able to effectively debug is with log statements. I had to do use lock on a readonly object to single thread through the logger, but it seems to be effective, more or less. At least Ive been able to generate the application, thank goodness...
There are a series of pretty good tips on debugging MT apps:
Thank you for the multi-threading debug info... now that i understand how to switch threads in the debugger it helped to identify and protect a couple synchronization fixes. Also it is very interesting how you identify thread demand as drain. Do you derive that from the sink /drain programming concepts in Windows? It caught my eye mostly because we describe cpu demand in increasing, or utilization terms. I was wondering about how drain describes it in decreasing, or approaching idle. Do you work in UNIX java environments or do you specialize in Win/.net?