Java多线程问题。A,B,C三个个不同的线程。A负责发送数据,B负责网络连接,C负责数据处理。

首先确定B,然后轮到A,最后C工作。如何完成这个过程呢呢。请各位帮忙。阐述原理,提出可行性方法即可。... 首先确定B,然后轮到A,最后C工作。如何完成这个过程呢呢。请各位帮忙。阐述原理,提出可行性方法即可。 展开
 我来答
andygulin
2012-08-31 · TA获得超过1678个赞
知道小有建树答主
回答量:1362
采纳率:0%
帮助的人:1111万
展开全部
你这个没有必要多线程,一定要这样的话看代码
public class Test {
public static void main(String[] args) throws Exception {
Thread a = new Thread(new A());
Thread b = new Thread(new B());
Thread c = new Thread(new C());
b.start();
b.join();
a.start();
a.join();
c.start();
c.join();
}
}
class A implements Runnable {
@Override
public void run() {
System.out.println("a");
}
}
class B implements Runnable {
@Override
public void run() {
System.out.println("b");
}
}
class C implements Runnable {
@Override
public void run() {
System.out.println("c");
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zn85600301
2012-08-31 · TA获得超过123个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:141万
展开全部
你提出的这种问题 本身就不适合用多线程去处理

你的工作 有明显的先后顺序 这要用多线程 不是添乱么

如果非要用的话 就加上一个 blooean的变量表示

B 执行完成 标示为true
这时 线程A才能进入run的实际运行方法中 否则退出
同理 A执行完成 标示为true
只有 B 和 A的标示 都为true C才能进入实际运行方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaok123
2012-08-31 · TA获得超过123个赞
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:98.3万
展开全部
BAC的顺序,只是启动下一个线程前,需要等待另一个线程的结果返回,你可以配合接口,来回调,
例如:
class Main implement BListener{
public void startTask(){
启动B线程,并传入listener实例,来回调用;
}
//override
public void BTaskComplete(){
B线程成功执行;

启动A线程;
}

}

class B extends Thread{
可以构造时获取Listener实例;
public void run(){
...
执行完毕出结果,Listener.BTaskComplete();

}

}
只是个大概思路,不过已经很清楚了,希望对你有帮助.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
桥安荷q9
2012-08-31 · TA获得超过509个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:325万
展开全部
应该是开启线程B,再到C,最后是A吧。 想你那样,在开启A之后,C启动之前,A发送的数据C就接受不到,处理不了了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式