Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果函数调用在多个线程中运行,则中止该函数调用_Java_Javascript_Multithreading_Jsp_Session Timeout - Fatal编程技术网

Java 如果函数调用在多个线程中运行,则中止该函数调用

Java 如果函数调用在多个线程中运行,则中止该函数调用,java,javascript,multithreading,jsp,session-timeout,Java,Javascript,Multithreading,Jsp,Session Timeout,我在我的jsp页面中设置了一个sessionTimeout函数,我在另一个jsp页面中单击一个按钮,使用iframe调用另一个jsp页面,我也有这个sessionTimeout函数。因此,该函数并行运行。如果有任何方法“如果同一个函数在不同的线程中被多次调用,那么它应该取消所有其他线程并访问最新的线程”,是否有人可以帮助我 我尝试过使用同步方法,但它不允许我使用,直到功能完成,所以我不能使用同步 有人能帮我解决这个问题吗?对于每个浏览器引擎实现,在不同iframe中运行的Javascript不能

我在我的jsp页面中设置了一个sessionTimeout函数,我在另一个jsp页面中单击一个按钮,使用iframe调用另一个jsp页面,我也有这个sessionTimeout函数。因此,该函数并行运行。如果有任何方法“如果同一个函数在不同的线程中被多次调用,那么它应该取消所有其他线程并访问最新的线程”,是否有人可以帮助我

我尝试过使用同步方法,但它不允许我使用,直到功能完成,所以我不能使用同步


有人能帮我解决这个问题吗?

对于每个浏览器引擎实现,在不同iframe中运行的Javascript不能保证在同一线程中运行

您可能需要在父窗口中构建一个任务管理实用程序,以跟踪iframe实例和sessionTimeout函数的运行状态(将状态保存在数组/映射中)。由于父级和所有iframe中的脚本在其上下文中都是单线程的,因此可以在iframe中启动sessionimout函数之前检查每个iframe的状态


如果您需要跨域iframe通信,您可以在

上阅读本文,为sessionTimeout分配一个变量。如果不为null,则进程正在运行。一旦进程完成,然后将变量重置为null。但是如果我的问题是,如果函数在两个位置一个接一个地调用,就像我在问题中解释的那样,我只需要最新的线程工作,其余的线程应该中止,因为变量不是null,那么其他进程不能/不应该使用这个过程。