Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
Javascript 从子窗口访问时,如何同步对父窗口中资源的访问?_Javascript_Multithreading - Fatal编程技术网

Javascript 从子窗口访问时,如何同步对父窗口中资源的访问?

Javascript 从子窗口访问时,如何同步对父窗口中资源的访问?,javascript,multithreading,Javascript,Multithreading,当我有一个资源(例如,一个全局变量foo)存在于浏览器窗口中运行的javascript中,然后我通过window.opener.foo从子窗口访问该变量时,我如何同步对该变量的访问,这样,在同时使用变量时,父窗口和子窗口不会遇到竞争条件 显然,我们在编写多线程代码时经常遇到这个问题,但在支持多线程的语言中,我们通常有同步机制来确保对共享资源的安全访问。但是,javascript中不存在这样的同步机制,因为它是一个单线程环境 但是,在多个窗口通过window.opener访问共享变量的情况下,我们

当我有一个资源(例如,一个全局变量
foo
)存在于浏览器窗口中运行的javascript中,然后我通过
window.opener.foo
从子窗口访问该变量时,我如何同步对该变量的访问,这样,在同时使用变量时,父窗口和子窗口不会遇到竞争条件

显然,我们在编写多线程代码时经常遇到这个问题,但在支持多线程的语言中,我们通常有同步机制来确保对共享资源的安全访问。但是,javascript中不存在这样的同步机制,因为它是一个单线程环境

但是,在多个窗口通过
window.opener
访问共享变量的情况下,我们有两个单独的javascript运行时环境,不能保证在单个线程上运行。那么,我们如何确保安全访问共享变量呢?我无法通过谷歌搜索找到这方面的信息,但可能我没有使用正确的搜索条件