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