如何确保main()方法所在的线程是Java程序最后结束的线程?

 我来答
好程序员
2016-03-05 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部
要实现这个情况,必须知道以下几点
1、java中线程的结束是由run方法运行完成后自动结束的

2、在main线程(主线程)中,需要得到所有线程的引用。
3、知道jdk提供的CountDownLatch的用法
例子如下:
public static void main(String[] args) throws InterruptedException
{
//CountDownLatch作为计数器纪录有几个线程,例如有2个线程

CountDownLatch latch=new CountDownLatch(2);
Worker worker1=new Worker( latch);
Worker worker2=new Worker(latch);
worker1.start();// 启动线程
worker2.start();//
//等待所有工人完成工作
latch.await();
System.out.println("all work done at "+sdf.format(new Date()));
}

class Worker extends Thread
{
private CountDownLatch latch;
public Worker(CountDownLatch latch)

{
this.latch = latch;

}
public void run()

{
xxxxx

//在run方法结束之前,讲线程计数器减一

latch.countDown();
}
}
相如淡泊人生7594
2015-09-23 · 超过55用户采纳过TA的回答
知道答主
回答量:118
采纳率:66%
帮助的人:51.7万
展开全部
可以使用Thread类的joint()方法来确保所有程序创建的线程在main()方法退出前结束。可以多了解一些关于Thread类的joint()方法。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式