请教:线程设计问题,请大家帮忙,来者有分

banneryue 2004-09-04 03:22:23
有这样一个线程问题(也许不是线程问题@_@)

1.我需要在一个主程序中控制三个程序,主程序启动可以启动三个程序(需要启动的程序在启动主程序的时候指定)
2.主程序接受用户的输入以便来决定停止三个程序中的哪一个程序
3.如果请求停止的程序的事务没有处理完成,那么需要该事物处理完成后将该程序停止
备注:主程序启动的三个程序是轮询程序

请大家给点设计的思路,谢谢!
...全文
213 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
chan2chen 2004-09-06
  • 打赏
  • 举报
回复
学习。。。。。。
ipconfiger 2004-09-06
  • 打赏
  • 举报
回复
程序应该是进程,这个应该属于进程调度哦
zgysc 2004-09-06
  • 打赏
  • 举报
回复
结束线程最好不要直接调用stop()方法,,你可以加上判断 isAlive(),再用stop
江南愚子 2004-09-05
  • 打赏
  • 举报
回复
riverwater(小河流水)的方案是可行的,一点改进建议:
1.private volatile boolean isStop = false;
2.轮询是不建议采用的方式。所谓轮询是指类似下列的代码:
while(某个条件不满足){
sleep(1000);
}
使用while循环始终查询某个条件是否满足,不满足就休眠一段时间,直到等待条件满足为止。这样会占用更多CPU资源,建议采用的方法是用wait()/notifyAll()取代轮询。
while(某个条件不满足){
object1.wait();
}
而在其它线程中当该条件满足时通过 object1.notifyAll() 唤醒该线程。
soupeven 2004-09-05
  • 打赏
  • 举报
回复
关注一下
ntzls 2004-09-05
  • 打赏
  • 举报
回复
polling?
opencsdn 2004-09-05
  • 打赏
  • 举报
回复
问题1:在主线程中启动三个线程没什么问题.
问题2:给三个线程各配一个ID,根据输入终止Thread.stop();
问题3:你把三个线程将要完成的任务放在它的run()方法时,如果处理完了,这个线程也就自动结束了所以不需要人为终止.
samsung45 2004-09-05
  • 打赏
  • 举报
回复
另外补充一下,如果你希望这个程序是健壮的,最好加入synchronized机制。
javahw 2004-09-05
  • 打赏
  • 举报
回复
我部门正在招聘JAVA工程师,要求软件基础良好,学习能力强,熟悉J2SE。如有在深圳、青岛、烟台的朋友感兴趣请把简历发给我:
liufrank@huawei.com

riverwater 2004-09-05
  • 打赏
  • 举报
回复
>>回复人: alpha15(奥法) ( ) 信誉:100
>>停止线程可以直接用thread1.stop();
虽然使用Stop可以强制终止一个线程,但是java2中已经不推荐这样做了,属于deprecated的。还是判断退出条件相对好一点点……
taoxianxue 2004-09-05
  • 打赏
  • 举报
回复
学习中~~~~~~~~~~
alpha15 2004-09-05
  • 打赏
  • 举报
回复
停止线程可以直接用thread1.stop();
riverwater 2004-09-04
  • 打赏
  • 举报
回复
很简单啊。你已经基本说明白了。
一个主控类,三个线程类(当然可能是一个,被你示例化了三份)。
主控类用来调用/运行三个线程类、接收用户输入、停止指定线程类。
线程类是自循环执行,当退出条件满足,则退出

大概写了一个流程性质的东西,供参考

public class TMainClass{
public static void main(String[] args){
根据参数启动TloopThread
启动线程
thread1=new TloopThread();
thread1.start();

接受客户输入
if (客户要停止线程1){
thread1.setStop();
}
}
}

class TloopThread extends Thread{
boolean isStop=false;

public void run(){
while(!isStop){
//循环执行
}
}

//设置停止
public void setStop(){
isStop=true;
}
}
无欲则钢 2004-09-04
  • 打赏
  • 举报
回复
怎么搞的?
都转行吧 2004-09-04
  • 打赏
  • 举报
回复
up
shangqiao 2004-09-04
  • 打赏
  • 举报
回复
"主程序启动的三个程序是轮询程序",请问是什么意思,他论询什么

62,623

社区成员

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

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