【发布时间】:2019-02-07 18:20:38
【问题描述】:
假设您有一个由一个异步进程修改的数组,然后您有另一个从同一数组读取的异步进程。修改和读取是同步完成的。现在的问题是,读进程能否在写进程修改数组时以某种方式获得对数组的访问权限?
根据经验,我知道它不能,并且当同步操作正在进行时,线程因此它所操作的所有资源(包括数组)都将被阻塞。正确的?但是,这是因为 JavaScript 是单线程的,还是在规范中的某个地方专门列出了这一事实,这在逻辑上是必然的结果吗?
【问题讨论】:
-
Javascript 在单线程上执行,我建议你阅读一下异步操作在 javascript 中的工作原理。
-
您有具体问题还是只是一般问题?如果你有一个特定的问题应该概述这是什么
-
据我所知,worker 的后台线程处于提案或测试阶段。就像共享工作者或网络工作者一样。但是目前对于您的问题,Nodejs 是单线程的,我认为即使使用依赖注入,您也不能从不同的进程共享相同的变量访问。使用 IPC 将更改传达给主进程和子进程以进行数据共享。
-
您可以使用 redis 之类的东西跨进程共享变量,这是一种可行且经常使用的解决方案
标签: javascript typescript asynchronous