2011-05-24 135 views
4

我已经实现了一个多线程程序,它涉及为每个用户产生一个线程,并执行一些次要的活动(没有包括数据库连接在内的穷举过程)。主线程无限运行,并通过监视文件创建活动来处理其终止。 我的问题是,是否可以直接终止主线程,而无需等待线程完成? (假设线程将自己完成(!),可能是一个错误的假设)。终止主线程,但不确保终止它产生的线程

回答

3

当然。

主线程只是其中一个线程,其终止不会影响其他线程(除非您不使用System.exit()来停止线程...)。

主线程只是第一线*)已启动但它已经没有多余的或隐藏的特征或功能。


*),以保持它的简单 - 在JVM可能在之前主开始有些内部线程 - 但应用程序有那些线程

3

是无码,线程的一点是,他们独立运行。

只有当客户端线程作为守护程序线程启动并且main是唯一的非守护线程时,它才会起作用。 (在这种情况下,应用程序在停止时会关闭)

1

是的,通常在大多数应用程序中就是这种情况。主线程通常对于启动系统是非常有效的,并且之后它可以和平地死亡。

请注意,您并不真正“终止”主线程,而是让它完成其运行方法。那就好。