请问JAVA多线程实现一边。。。一边。。。大概的思路是什么?

玫_瑰骑_士 2014-07-03 04:48:42
我是初学者。
翻了翻网上一堆资料都是在讲基本概念,没看到有实例= =。
比如实际一点,现在不是世界杯嘛:两个足球运动员同时去抢一颗足球。


A implements Runnable
{
public void run()
{
//A抢球
}
}



B implements Runnable
{
public void run()
{
//B抢球
}
}



Runnabele rA = new A();
Runnable rB = new B();
Thread A = new Thread(rA);
Thread B = new Thread(rB);

A.start();
B.start();


看书上说,上面这样虽然是把多个线程启动了,
但是具体怎么并发,谁先做,谁后做,怎么在两个线程中来回转换,以及是不是会同时完成,
都取决于JVM,而我们无法直接控制。
那如果我想要实现同时做什么的话,用线程岂不是不能准确完成?还麻烦大家指导我。
...全文
231 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rumlee 2014-07-04
  • 打赏
  • 举报
回复
多线程就是多个任务同时进行。但是如果你希望实现下面这种情况的话,则需要进行同步控制: 如:A 和 B 两个人做4个任务(1、2、3、4) A做1、3,B做2、4 必须1和2都完成了之后再开始做3和4。 这种情况就需要在关键节点进行同步控制了。你可以看看同步的概念。
Asura_X_Y_Y 2014-07-04
  • 打赏
  • 举报
回复
像这种:要么A有球,要么B有球的情况,那么只要互斥就行了。在方法上,用synchronized来控制就可以了。 还有一种是:A持球多少分钟,然后给B持球多少分钟,然后再给A,这样反复运行。这就需要在互斥的基础上,加上线程通信了。可以用wait()、notify()来通信

62,621

社区成员

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

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