1. A method for profiling a multithreaded process comprising the steps of: identifying a process to be profiled; executing instructions on a processor in a multithreaded manner; interrupting the executing of instructions on the processor; determining whether the process was runnable but not running upon interrupting the executing of instructions; and incrementing a counter for the process if the process was runnable but not running.