nodeJs的多线程和一般erlang?
一、nodeJs的多线程和一般erlang
nodeJs的多线程
Node.js 通过提供 cluster、child_process API 创建子进程的方式来赋予Node.js “多线程”能力。但是这种创建进程的方式会牺牲共享内存,并且数据通信必须通过json进行传输。(有一定的局限性和性能问题)
基于此 Node.js V10.5.0 提供了 worker_threads,它比 child_process 或 cluster更轻量级。 与child_process 或 cluster 不同,worker_threads 可以共享内存,通过传输 ArrayBuffer 实例或共享 SharedArrayBuffer 实例来实现。
Node.js 并没有其它支持多线的程语言(如:java),诸如”synchronized”之类的关键字来实现线程同步的概念。Node.js的 worker_threads 区别于它们的多线程。如果添加线程,语言本身的性质将发生变化,所以不能将线程作为一组新的可用类或函数添加。我们可以将其理解为:JavaScript和Node.js永远不会有线程,只有基于Node.js 架构的多工作线程。
一般erlang
Erlang是一种函数式语言,使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。使用 Erlang来编写分布式应用比其它语言简单许多,因为它的分布式机制是透明的,即对于程序而言并不知道自己是在分布式运行。Erlang运行环境是一个 虚拟机,有点类似于Java虚拟机,代码一经编译,同样可以随处运行。它的运行时系统甚至允许代码在不被中断的情况下更新。另外如果需要更高效的话,字节 代码也可以编译成本地代码运行。
延伸阅读:
二、Erlang应用场合
未来的计算是并发计算。现今甚至桌面CPU也是多核的,当用户给服务器购买了越来越多的CPU时,他们更期望能最大限度地利用他们的新投资,但是今天的许多软件系统并不能很好地做到这一点。
整个软件行业也在发生重大变革,由卖工具软件转向卖服务(软件免费,这也是开源软件兴起的过程),由单纯客户端向B/S或C/S转化,相应的存储和计 算向服务器端转移,由原来的PC客户端向客户端多元化(如手机、PDA、电视机顶盒等)转化。这些变革趋势,使得用户可以更方便地访问到服务的同时,服务 器也要承受越来越高的负荷,并行/分布的需求逐渐增加。
Erlang语言不是用来解决所有问题的语言,至少现在还不是。Erlang最初专门为通信应用设计的,比如控制交换机或者变换协议等,非常适合于构 建分布式,实时软并行计算系统。它是一门专注的语言,可以适应现代服务器要求高负荷、高可靠、持续服务的需求。它要解决的问题域包括:高并发、分布式、持 续服务、热升级和高可靠等问题。
以上就是关于nodeJs的多线程和一般erlang的内容希望对大家有帮助。

猜你喜欢LIKE
相关推荐HOT
更多>>
大数据分析与数据分析有什么区别?
一、大数据分析与数据分析的区别大数据分析与数据分析有以下区别:1、数据规模不同大数据分析通常处理海量数据,而数据分析则处理小规模数据。2...详情>>
2023-10-11 23:04:34
地址传递和值传递有哪些区别?
一、地址传递和值传递的区别地址传递和值传递都是计算机编程中常用的参数传递方式,它们之间的主要区别如下:1、定义不同值传递:将函数调用中...详情>>
2023-10-11 20:05:08
nodeJs的多线程和一般erlang?
一、nodeJs的多线程和一般erlangnodeJs的多线程Node.js 通过提供 cluster、child_process API 创建子进程的方式来赋予Node.js “多线程”能力。...详情>>
2023-10-11 18:21:42
java中 get和post 区别?
一、java中 get和post 区别1.首先get是用来获取数据的,post是向服务器提交数据。2.get传递形式是通过URL进行传输,以key=value的格式,添加在u...详情>>
2023-10-11 17:16:19热门推荐
大数据分析与数据分析有什么区别?
沸原型模式和应用拷贝构造函数、重载赋值操作符有什么区别?
热原始卡尔曼滤波算法(KF)、扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别?
热dos和windows的区别?
新c语言char和int区别?
组策略和组策略对象有什么区别?
地址传递和值传递有哪些区别?
Java中的接口和API 有哪些区别?
手机和计算机软件编程的区别?
nodeJs的多线程和一般erlang?
ArrayList和LinkedList区别?
java中 get和post 区别?
JSP和Blazor有什么区别?
分布式与集群的区别是什么?
技术干货






