我已经实现了一个多线程程序,它涉及为每个用户生成一个线程,并执行一些次要的活动(没有涉及数据库连接的详尽过程)。主线程无限运行,并通过监视文件创建来处理它的终止活动。 我的问题是,是否可以直接终止主线程,而无需等待线程完成? (假设线程自己完成(!),可能是错误的假设)。
答案 0 :(得分:3)
不确定。
主线程只是其中一个线程,它的终止不会影响其他线程(除非你不使用System.exit()
来停止线程......)。
主线程只是已经启动但没有额外或隐藏功能或功能的第一个线程 *)。
*)保持简单 - jvm可能在main之前启动了一些内部线程 - 但是应用程序没有这些线程的代码
答案 1 :(得分:3)
是的,线程的重点在于它们是独立运行的。
只有您的客户端线程作为守护程序线程启动并且main
是唯一的非守护程序线程才有意义。 (在这种情况下,应用程序会在停止时关闭)
答案 2 :(得分:1)
是的,通常情况在大多数申请中都是如此。主线程通常是用于启动系统的,它可以在此之后安静地死亡。
请注意,您并没有真正“终止”主线程,而只是让它完成其run方法。那没关系。