我正在用java开发一个开源框架作为微服务引擎。因此,我有一个包含许多方法的Service类,这些方法可以从任何线程调用。为了控制服务线程,我希望保证所有与服务相关的线程只在特定的ThreadGroup下创建。
Thread A -> service.createNewThreadUnderCurrentThreadGroup() ->从SecurityManager引发异常
Thread A service.createNewThreadUnderServiceThreadGroup() -> ->成功
我不是SecurityManager%s和ThreadGroup%s的专家。也许我应该使用ClassLoader%s来配置它?或者使用自定义安全管理器?请问,有什么建议吗?我知道可以直接从服务实现中检查到什么,但我想保证该实现不会破坏机制,也不会在服务ThreadGroup之外创建线程。
另一个想法是在每次调用服务方法时在服务ThreadGroup下创建新线程,以确保该方法将在服务ThreadGroup下执行,因此不会有外部线程。但它可能会使代码变得复杂,假设哪个服务方法可以抛出一个抛出的。
谢谢
https://stackoverflow.com/questions/69596001
复制相似问题