title: Can I know when/where is the Runnale task submitted when debugging multi-thread project,IntelliJ
body: <p>I am currently working on a project which maintans several thread pools. And there are many communication between each threads. For example, when I finish a task from pool1, I will signal pool 2 to wakeup to pickup some new task.</p>
  
  <p>Always ,  I try to figure out "who post this task " to this pool2, so that I can trace back to the source. </p>
  
  <p>But if I put a breakpoint inside the task <code>run()</code>, I will have a stack trace like:</p>
  
  <p><a href="https://i.stack.imgur.com/Zpht4.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Zpht4.png" alt="enter image description here"></a></p>
  
  <p>which starts from the call method from <code>Executors</code>, which is not enough for me to easily look into what happens.</p>
  
  <p>Actually, I hope I konw where it is submited(this sometimes may be at another class): </p>
  
  <pre><code>this.brokerController.getPullMessageExecutor().submit(run);
  </code></pre>
  
  <p>This is this most important statement when I need to debugging. </p>
  
  <p>Typically, I will have to follw the below steps: </p>
  
  <ol>
  <li>Put a debug point inside a method</li>
  <li>Trace back to the Runnale Task</li>
  <li>Find usage of this Runnale class, find who creates the instance of it.(If I am unlucky, I will find several places who creates tasks)</li>
  <li>Look into the code aroud 3, find where to submit the task to. </li>
  </ol>
  
  <p>This may be a painful process, Is there any way or plugin to easily find the task soure?</p>