Javascript nodejs数据结构在设计上是线程安全的吗?
读入node.js相关的web文档,说明它是单线程服务器。因此,在节点服务器中,默认情况下所有数据结构是否都是线程安全的,这让我感到困惑 我有多个回调访问全局对象,如下所示:Javascript nodejs数据结构在设计上是线程安全的吗?,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,读入node.js相关的web文档,说明它是单线程服务器。因此,在节点服务器中,默认情况下所有数据结构是否都是线程安全的,这让我感到困惑 我有多个回调访问全局对象,如下所示: callback1{ global_var['key'] = val; } callback2{ globalv_var['key'] = val; } “键”有时可能相同,也可能不同。全局变量是线程安全的吗? 回调,正如预期的那样,在完成某件事情时会被回调,没有特定的顺序。Node.JS包含一个“dispatcher
callback1{
global_var['key'] = val;
}
callback2{
globalv_var['key'] = val;
}
“键”有时可能相同,也可能不同。全局变量是线程安全的吗?
回调,正如预期的那样,在完成某件事情时会被回调,没有特定的顺序。Node.JS包含一个“dispatcher”。它接受web请求并将其交给异步处理。该调度器是单线程的。但是,调度器为每个任务启动一个新线程,并迅速将任务移交给新线程,从而释放调度器的线程来服务新请求
在某种程度上,这些任务线程是分开的(即它们不修改彼此的状态),是的,它们是线程安全的。您为node.js applocation编写的所有javascript都像在单个线程中运行一样执行
任何多线程都发生在后台、I/O代码和其他本机模块中。因此,不必担心任何应用程序代码的线程安全。回调仍然会一个接一个地执行。没有两个回调同时在全局对象上运行。可能相关:因此后台线程在执行实际工作之前在主线程上调用。两个工作块不能同时运行。有趣。类似于等待用户输入的桌面应用程序。并在UI线程中输入启动操作。