>>System.out.println("总共执行" + count + "回合______当前在第" + j + "回合__________上次执行>>到第" + q >>+ "条________当前返回集合长度" + swapDatas.size()); 变成0的是这里的j吗? 线程1是怎么在3个循环后停下来的呢?(可以在该打印语句前再设一个静态变量的自增……
引用 2 楼 orange001425 的回复:╮(╯▽╰)╭ 现在debug的情况就是 线程1的循环已经走到了i=3了 但是当另外一个线程启动时 线程1的i就变成等0了 问题是 这个两个线程调用的都是不同的方法啊 这样也会串到啊。。。 两个线程操作的都是不同的变量(可以确定吧?)怎么会影响到呢? 确认一下是不是由该线程引起的变化,或者给出相关代码。 ……
╮(╯▽╰)╭ 现在debug的情况就是 线程1的循环已经走到了i=3了 但是当另外一个线程启动时 线程1的i就变成等0了 问题是 这个两个线程调用的都是不同的方法啊 这样也会串到啊。。。
首先声明,俺对线程的了解全都是理论上,没有实际在工作中用到过,用到的都是简单的情况。 情况一中,按说应该不会的,没有看具体代码也不知道你后面说的是什么原因。局部不变量有自己的作用域,超过作用域是引用不到的。 是否可以debug一下看看线程的每个步骤里面的调用。
引用 9 楼 dracularking 的回复: >>System.out.println("总共执行" + count + "回合______当前在第" + j + "回合__________上次执行>>到第" + q >>+ "条________当前返回集合长度" + swapDatas.size()); 变成0的是这里的j吗? 线程1是怎么在3个循环后停下来的呢?(可以在该打印语……
...因为我断点打在那等着。。。我让这帮先执行3次 然后停住 等另外个线程启动 然后 在执行次循环 i就被变成了0 了。。。
67,512
社区成员
225,881
社区内容
加载中
试试用AI创作助手写篇文章吧