1. 业务场景:按照正常的调试经验点击F5,F6,F8时代码得出的结果与预期不一致,经高手指点,总结一下多线程调用时调试经验。
2. 方法: 正常使用debug模式时,debug视窗会弹出各种线程Dameon之类的提示,重点就在这个视窗
正常多线程提交时大概分两步:
1. 初始化线程池(ThreadPoolExecutor)
2. 提交(submit)给线程池执行call方法
重点就在这个第二步,正常debug到第二部提交的函数时,debug视窗会弹出一个子线程(正常F8以后不会弹出类似详细信息),此时我们要从主线程(RunTaskObjet)点击到子线程(thread-1,thread-2)调试,你会神奇的发现除了主线程以外,真正走的业务代码是在子线程里面,并高亮显示子线程调用函数,当然子线程也可继续这种操作,原理类似套娃。
到这里经验就分享完毕,希望对大家调试代码有所帮助!