3

在 Google App Engine 上使用 ExecutorService 时出现异常。

java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "modifyThread") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:375)

我的代码是

ExecutorService service = Executors.newFixedThreadPool(25,com.google.appengine.api.ThreadManager.currentRequestThreadFactory());        
List<Future<JSONObject>> results = service.invokeAll(jobs,45,TimeUnit.Seconds);

看起来 Thread.interrupt 似乎导致安全管理器触发。文档有点不清楚,有些地方说中断是可以的,其他地方说它只在当前线程上可用。

我尝试复制相同的东西,产生一个线程然后中断它,而不使用 ExecutorService 并且它工作正常。

如果这是我可以调整的安全问题(不太可能)或错误,有什么想法吗?我宁愿不重新实现 ExecutorService。

谢谢!

4

0 回答 0