昨天在实现《Java 7并发编程实战手册》 7.3 实现基于优先级的Executor类 例子的时候。
发现MyPriorityTask只实现了Comparable接口的cpmpareTo()方法,并没有看到实际在哪调用。
Debug一下
![](https://img.haomeiwen.com/i13760813/7e5661a9163f692b.png)
当执行器空间并等待任务时,它们将立刻被执行。由于只创建了两个线程执行器,所以前两个任务将被首批执行。
![](https://img.haomeiwen.com/i13760813/d260bec4bc43f2a9.png)
接下来,剩余任务基于它们的优先级被依次执行。
![](https://img.haomeiwen.com/i13760813/537b63b72c9b91c8.png)
可以很清晰的看到是哪些哪里调用到了这个方法,原理就很清晰了。
当然Debug不仅限于这个用法,日常排错都是很基础的东西就不再赘述。
网友评论