我在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。
谢谢!