不打debug的情况下handler处理的计算结果主键ID拿的都是线程最后一个的ID,打debug等待一下就能正常拿到值了,请问如何避免这种问题发生。

不打debug的情况下handler处理的计算结果主键ID拿的都是线程最后一个的ID,打debug等待一下就能正常拿到值了,请问如何避免这种问题发生。

虽然不知道这些功能是做什么的,不过我大概懂你意思了,你是想在每个线程中都可以拿到ID吧,而不是现在这样只拿到最后一个。
如果要实现这样的功能,代码现在这样肯定不行。因为现在拿ID的代码是在主线程跑的,你让主线程休眠了10s的确可以保证能拿到ID,但肯定也是最后一个。
我的想法:
创建一个数组、列表或者集合都行,用来临时存储ID,比如:
Collections.synchronizedList(new ArrayList())、new Vector()(用这类结构都省去了手动加锁synchronized),自己再设计一下。然后在休眠10s后遍历从中获取ID。