Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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 多线程问题_Java_Multithreading_Libgdx - Fatal编程技术网

Java 多线程问题

Java 多线程问题,java,multithreading,libgdx,Java,Multithreading,Libgdx,我在libgdx中有一个应用程序,有两个线程。在一个线程中,该方法生成数字(仅当我按buton键时有效,我使用Gdx.graphics.setContinuousRendering(false);停止该方法) 但是一直以来,p1=0(但是numbershow()方法生成不同的值0,1,2…)。我不知道我在哪里犯了错误。感谢您的帮助。numberscame=newnumberscame()。位置将在创建对象期间获取位置值。如果您稍后调用numbershow(),它将不会追溯更改numberscam

我在
libgdx
中有一个应用程序,有两个线程。在一个线程中,该方法生成数字(仅当我按buton键时有效,我使用
Gdx.graphics.setContinuousRendering(false);
停止该方法)


但是一直以来,
p1=0
(但是
numbershow()
方法生成不同的
值0,1,2…
)。我不知道我在哪里犯了错误。感谢您的帮助。

numberscame=newnumberscame()。位置将在创建对象期间获取位置值。如果您稍后调用
numbershow()
,它将不会追溯更改
numberscame
的值


这是一个值副本,而不是参考副本。

numberscame=newnumberscame().position将在创建对象期间获取位置值。如果您稍后调用
numbershow()
,它将不会追溯更改
numberscame
的值

这是一个值副本,而不是引用副本

public int numbersShow(){
    List<String> d = generateNumbers.generate();
     a = d.get(0);
     b = d.get(1);
     c = d.get(2);
     e = d.get(3);
     f = d.get(4);
     pos1 = (Integer) p.get(0);
     pos2 = (Integer) p.get(1);
     pos3 = (Integer) p.get(2);

    if(pos1==0){
        number.draw(batch, e, 50, 350);
     position=0;
    }
    if(pos1==1){
        number.draw(batch, f, 50, 350);
        position=1;
    }
    if(pos1==2){
        number.draw(batch, c, 50, 350);
        position=2;
    }
         return position;
}
@Override
public void run() {
    Gdx.graphics.requestRendering();
    numbersGame = new NumbersGame().position;
    if(Gdx.input.isKeyPressed(Input.Keys.NUM_1)){
        Gdx.app.log("pressed", "1");
     p1 = numbersGame;
        Gdx.app.log("p1", ""+p1);

    }