(java)一个线程启动两次会发生怎样

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:14:31
我做坦克大战游戏 在初始化的时候启动了一个线程 后来我在从登陆界面转入游戏界面的时候又启动了已经启动的线程(由于大意 忘记了该线程在前面已经启动) 后来发现了 就注释掉初始化就启动线程那步 但注意到 注释后坦克的流畅度比注释前大减(确实是这样 反复试过多次) 现在问题出来了 一个线程可以启动两次或多次吗 还有就是线程启动两次为什么坦克的移动会比较流畅...

你说的重复启动是不是用同一个实现Runnable接口的类建立多个Thread,然后启动
如果这样就可以启动两次或多次,不过要注意同步与死锁问题

假设run()方法为下

public void run() {
while(true) {
x+=10; //x假设是个静态全局变量
try {
Thread.sleep(100);
} catch (Exception e) {}
}
}

假如同时启动两个线程,那么x的递增速度就由原来的 10/100ms 加快到了 10/50ms,,所以你看起来会流畅…………

比如:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
public class ClassName implements Runnable {
static int x=0;
public ClassName() {
Thread t=new Thread(this);
Thread t1=new Thread(this);
t.start();
t1.start(); //把这句注释掉间隔就会长
}
public static void main(String args[]){
new ClassName();
}
public void run() {
while (true) {
x+=10; //x假设是个静态全局变量
System.out.println(x);
try {
Thread.sleep(100);
} catch (Exception e) {}
}
}
}