Each thread has its own starting column of functions. A call is shown as a step to the right, and a return as a line to the left, to show the flow of control. The calls are labeled with the name of the function being called. 

Context switches between threads are shown by dashed horizontal lines. While the vertical lines do not show elapsed scaled times, you can clearly see the flow of control and interactions among the various threads.