最近在写一个程序.其中就遇到了这样一个问题.我希望实现两个或多个线程,而这些线程的顺序是Thread[Thread-2,5,main]
----a---- <这是线程2调用b时打印出的>
Thread[Thread-3,5,main]
----a---- <这是线程3调用b时打印出的>上面的顺序是我所希望的...但往往会是这样的结果:
Thread[Thread-2,5,main]
Thread[Thread-3,5,main]
----a----
----a----
因此会使我的程序出现错误.我知道这是因为线程的原因造成的
我只是想看那们前辈有没有什么好的方法,能够解决这样的问题以下是实例代码
代码
class a
{
public synchronized void b()
{
System.out.println("----a----");
}
class c extends Thread
{
public void run()
{
System.out.println(this);
b()
}
}
}
----a---- <这是线程2调用b时打印出的>
Thread[Thread-3,5,main]
----a---- <这是线程3调用b时打印出的>上面的顺序是我所希望的...但往往会是这样的结果:
Thread[Thread-2,5,main]
Thread[Thread-3,5,main]
----a----
----a----
因此会使我的程序出现错误.我知道这是因为线程的原因造成的
我只是想看那们前辈有没有什么好的方法,能够解决这样的问题以下是实例代码
代码
class a
{
public synchronized void b()
{
System.out.println("----a----");
}
class c extends Thread
{
public void run()
{
System.out.println(this);
b()
}
}
}
class a
{
public synchronized void b()
{
System.out.println("----a----");
}
class c extends Thread
{
public void run()
{
synchronized (System.out){
System.out.println(this);
b();
}
}
}
}
最后我用了一种最笨的方法
代码
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
虽然这样很有用,但是不知道这对以后会有什么样的影响....恩,我这个程序是写一个游戏了啦,就是那种弹珠,下面有下横杠那种,我希望能实现的就是可以同时出现多个球运动.....