Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对于循环isn';在一根线内工作不好_Java_Android_Arrays_Multithreading_Boolean - Fatal编程技术网

Java 对于循环isn';在一根线内工作不好

Java 对于循环isn';在一根线内工作不好,java,android,arrays,multithreading,boolean,Java,Android,Arrays,Multithreading,Boolean,EDIT2:以下是代码和输出: 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]){

EDIT2:以下是代码和输出:

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();
}
我的问题:为什么我的第二个循环没有被打印?

如果
myFunc()
被调用了两次,或者如果在线程完成之前有任何其他内容正在修改
itemsIdsArray
中的值,那么这将影响线程的查看效果


如果您希望效果像启动线程时值的“快照”,请在创建线程之前复制相关数组,并将本地副本传递给线程。

如何初始化
itemsisdsarray
我认为您必须提供一个示例,您需要向我们展示更多代码。据我们所知,您只需将
itemsisdsarray
的每个元素设置为
false
,这正是它应该做的。itemsisdsarray只是一个字段,数组的单元格动态填充了true,这是很多代码,我认为我不应该发布它。我在1分钟内编辑了原始帖子。@idish不会发布所有内容,只发布与
itemsIdsArray
初始化相关的内容,以及与
计时器
线程
初始化并运行的方法相连接的内容。您的编辑是您首先发布的代码的副本。这不会有什么帮助。非常感谢您的解决方案,您完全正确,我没有想到在后台线程执行时,数组由前台线程重新初始化。我设法修复了它,现在它工作得很好:)