关于java线程的一个问题

zkgale 2007-06-24 06:51:59
最近在写一个程序.其中就遇到了这样一个问题.我希望实现两个或多个线程,而这些线程的顺序是

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()
}
}
}
...全文
145 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zkgale 2007-06-24
  • 打赏
  • 举报
回复
先谢谢objectart() 哈,我试过这样的方法,但是不行呀...
最后我用了一种最笨的方法


代码
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}


虽然这样很有用,但是不知道这对以后会有什么样的影响....

恩,我这个程序是写一个游戏了啦,就是那种弹珠,下面有下横杠那种,我希望能实现的就是可以同时出现多个球运动.....
objectart 2007-06-24
  • 打赏
  • 举报
回复
试试:
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();
}
}
}
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧