关于java线程的一个问题
最近在写一个程序.其中就遇到了这样一个问题.我希望实现两个或多个线程,而这些线程的顺序是
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()
}
}
}
------解决方案--------------------试试:
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();
}
}
}
}