300元3小时服务不限次数-400块钱3小时无限次快餐,500一晚同城约茶,风楼阁交友平台

千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:成都千锋IT培训  >  技术干货  >  nodeJs的多线程和一般erlang?

nodeJs的多线程和一般erlang?

来源:千锋教育
发布人:xqq
时间: 2023-10-16 02:29:17

一、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

操作系统的基本功能包括哪些?

2023-10-16

数据链路层的三个基本问题是什么?

2023-10-16

什么是人力资本管理 (HCM)?

2023-10-16

最新文章NEW

计算机的输入输出设备有哪些?

2023-10-16

什么是 SAN(存储区域网络)?

2023-10-16

什么是网络功能虚拟化(NFV)?

2023-10-16

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>