我正在开发一个框架,允许客户使用Java编写自己的代码。该框架在一个线程(例如线程A)中调用他们的代码以执行定制操作。
但是客户可能会在他们的代码中创建新线程。因此问题是如何知道所有客户代码的线程何时完成?或者如何禁止客户在他们的代码中创建线程?
谢谢。
但是客户可能会在他们的代码中创建新线程。因此问题是如何知道所有客户代码的线程何时完成?或者如何禁止客户在他们的代码中创建线程?
谢谢。
你可以为客户端代码创建一个新的ThreadGroup。 activeCount
方法告诉您在给定时刻有多少客户端线程处于活动状态,enumerate
方法允许您枚举线程。要等待整个组的终止,您可以枚举线程并在每个线程上调用join
。
如果您想禁止创建新线程,我认为您可以通过自定义SecurityManager
来实现,但我不知道详细信息。
System.exit(1)
等来关闭JVM)。我认为RMI提供了类似的功能,客户端可以提交自定义请求。RMI是否符合您的要求? - Sanjay T. Sharma