我正在开发一个框架,允许客户在java中编写自己的代码。并且这个框架在一个线程(比如线程A)中调用它们的代码来做定制的事情。
但是客户可以在他们的代码中创建新线程。那么问题是如何知道所有客户代码的线程完成了?或者如何禁止客户在代码中创建线程?
感谢。
答案 0 :(得分:1)
您可以为客户端代码创建新的ThreadGroup。 activeCount
方法告诉您在给定时刻有多少客户端线程处于活动状态,enumerate
方法允许您枚举线程。要等待整个组的终止,您可以枚举线程并在每个线程上调用join
。
如果你想禁止创建新线程,我相信你可以通过自定义SecurityManager
来实现,但我不知道细节。