我的问题,类似于
我正在编写一个教学应用程序,允许学生提交执行特定任务的java代码,并进行交互。
我们需要安全地加载、编译和执行一些代码。
使用Java工具,我们可以在内存中完成所有代码的编译;然后,自定义类加载器加载代码,代码在线程中执行,并具有一定的超时和自定义安全管理器。
然而,学生仍然可以在他们的代码中创建线程,在循环中设置它们,最终耗尽系统/Tomcat资源。
有没有办法防止创建线程?引述的答案是:
"""From your perspective, just change the policy."""
这在实践中意味着什么?
我尝
我在做一个管理学生名册的项目。所需的函数之一是能够使用学生ID标识符删除学生的记录,如果学生ID不存在,该删除函数将产生错误。
此删除验证所需的测试是删除同一学生ID两次,并查看是否在第二次调用remove方法时打印错误消息。
第一个remove方法调用正在工作,并成功地删除了被调用的学生ID的元素。然而,第二个remove给出了并发修改异常错误。
下面的代码创建“学生”数组列表并调用remove方法(两次)。
static ArrayList<Student> myRoster = new ArrayList<>();
public static void main
运行错误
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(S