o19830015 2013-08-15 05:57 采纳率: 12.5%
浏览 2526

在线程中的for循环不允许

代码和输出:

private void myFunc()
{
    itemsIdsArray = new boolean[3];
    for(int i = 0;i<itemsIdsArray.length;i++){
        itemsIdsArray[i] = true;
    }

    for(int i = 0;i<itemsIdsArray.length;i++){
        if(itemsIdsArray[i]){
            Log.d(Global.TAG,"first in i: " + i);
        }
    }

    Thread timer = new Thread(){
        public void run(){
            try{
                for(int i = 0;i<itemsIdsArray.length;i++){
                    if(itemsIdsArray[i]){
                        Log.d(Global.TAG,"second in i: " + i);
                    }
                }
            }finally{

            }
        }
    };
    timer.start();
}

输出:

08-15 03:27:38.136: D/MyTag(22229): first in i: 0
08-15 03:27:38.136: D/MyTag(22229): first in i: 1
08-15 03:27:38.136: D/MyTag(22229): first in i: 2

为什么第二个循环没有输出?

  • 写回答

2条回答

  • JaveZh 2013-08-15 06:16
    关注

    从代码上来看执行并无问题,会两次都打印

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器