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

我做坦克大战游戏在初始化的时候启动了一个线程后来我在从登陆界面转入游戏界面的时候又启动了已经启动的线程(由于大意忘记了该线程在前面已经启动)后来发现了就注释掉初始化就启动... 我做坦克大战游戏 在初始化的时候启动了一个线程 后来我在从登陆界面转入游戏界面的时候又启动了已经启动的线程(由于大意 忘记了该线程在前面已经启动) 后来发现了 就注释掉初始化就启动线程那步 但注意到 注释后坦克的流畅度比注释前大减(确实是这样 反复试过多次) 现在问题出来了 一个线程可以启动两次或多次吗 还有就是线程启动两次为什么坦克的移动会比较流畅... 展开
 我来答
tsorgy
2008-06-14 · TA获得超过979个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:552万
展开全部
你说的重复启动是不是用同一个实现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) {}
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式