Erlang和golang的区别:

第一对锁的态度不同,第二对异步IO的态度不同,第三消息机制不同。Erlang对锁非常反感,认为变量不可变可以很大程度避免锁。

Golang的观点是锁确实有很大的负担,但是锁基本上是无法避免的,一旦有人共享状态并且互相抢占去改变他,这时候锁是必须存在的。 (推荐学习:go)

Erlang服务器是单进程的,是逻辑上就没有并发的东西,一个Process就是一个执行体,所以Erlang的服务器和golang的服务器不一样,golang的服务器是多进程的(goroutine)一起构成的一个服务器。每个请求建立一个独立的进程(goroutine)。

但是Erlang不同,一个服务器就是一个单进程的,所有的并发请求都进入到了进程邮箱,然后这个服务器从进程邮箱里取邮件(请求的内容)处理,Erlang的服务器并没有并发的请求,所以不需要所锁。

Erlang的高并发实现:

第一:每个Erlang的物理进会有很多的服务器,每个服务器是互相无干扰的,他们可以并发。

第二是单服务器高并发使用的是异步IO。

go认为何时都不应该有异步IO的代码,Erlang则是在异步IO的基础上加上轻量级进程模型的混杂。

Golang对并发的支持:

第一:价值回归,golang最重要的事情是让执行成本降低,golang的栈最小可以到4K。

第二:把执行体作为语言内建的标准设施(golang的代码风格只有标准化得一种)。go得并发模型是最古老的并发模型,该并发模型包括,routine,原子操作,互斥体,同步,消息,同步IO。

golang PHP的区别,erlang和golang的区别相关推荐

  1. golang interface 类型转换_无符号Golang程序逆向方法解析

    在去年的inctf2018中,出现了一道Go语言编写的进程通信逆向题,无论是从题目整体设计还是解题思路上来说都独树一帜,自己在解题过程中遇到了很多问题,但我这不打算做过多探讨,网上也有大佬的解题过程, ...

  2. golang微信机器人_如何使用Golang从头开始创建Twitter机器人

    golang微信机器人 by Kofo Okesola 由Kofo Okesola 如何使用Golang从头开始创建Twitter机器人 (How to create a Twitter bot fr ...

  3. r语言和python-Python和R语言的区别_Python与R的区别和联系

    Python和R语言的区别_Python与R的区别和联系 可能问这个问题会很无脑,但是我还没有深入接触过Python,只是用过R语言.谁能帮我解答一下,这两者的主要区别呢?是否存在代替关系呢? 精彩解 ...

  4. java中的异常种类和区别以及处理机制和区别

    java中的异常种类和区别以及处理机制和区别 按照异常需要处理的时机分为编译时异常(也叫强制性异常)也叫 CheckedException 和运行时异常(也叫非强制性异常)也叫 RuntimeExce ...

  5. SparkMapReduce的区别、多线程多进程的区别

    Spark&MapReduce的区别.多线程&多进程的区别 1.spark与hadoop区别: 2.Spark多线程运行, MR多进程运行 3.MR存在的问题: 4.线程和进程的区别: ...

  6. 现货跟期货有什么区别(现货和期货交易区别)

    现货和期货的区别? 期货交易和现货交易的区别如下: 期货交易与现货交易有相同的地方,如都是一种交易方式.都是真正意义上的买卖.涉及商品所有权的转移等,不同的地方有以下几点: (1)买卖的直接对象不同. ...

  7. YV12和I420的区别 yuv420和yuv420p的区别

    YV12和I420的区别   YV12和I420的区别        一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小size=width×heigth×3 Bit,RGB32的 ...

  8. C#【中级篇】volatile关键字测试-在C#无区别,在Java有区别

    文章目录 问题来源: 测试代码1(测试有无volatile的区别,在C#里无区别): 测试代码2:(ChangeMaker不延时,ChangeListener跟不上变化) 测试代码3:(ChangeM ...

  9. Element-ui和Element-Plus的区别_Element2和Element3的区别

    Element-ui和Element-Plus的区别_Element2和Element3的区别 一.定义区别 Element-UI对应Element2:基本不支持手机版 Element,一套为开发者. ...

最新文章

  1. Android 开发 Activity里获取View的宽度和高度 转载
  2. oracle 11g rac asm磁盘组增加硬盘
  3. 全球及中国植物脂肪酸行业供给前景与需求规模预测报告2022版
  4. #pragma与__pragma的区别与联系2009-01-19 15:47__pragma与#pragma的功能相同,所不同的是:
  5. 除了 Tensorflow、PyTorch ,还有哪些深度学习框架值得期待?
  6. 项目管理系统Redmine安装
  7. 共享充电宝“脱贫”:打脸王思聪 眼红了“负翁”ofo
  8. 智能快递柜10月1日起按新规管理
  9. openSearch支持mysql版本_OpenSearch 使用二三事-阿里云开发者社区
  10. VueTreeselect出现unknown解决方法
  11. linux不同内核驱动移植问题,基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九-2)...
  12. 面试——测试基础理论
  13. 《新唐书·李白传》原文及翻译
  14. CSP2019滚粗记
  15. pkl文件与pickle.dump,pickle.load
  16. 【5G核心网】 NGAP 消息
  17. 人生如逆旅,我亦是行人——与余光中先生握一次手(一)
  18. 查找 Mac 的机型名称和序列号四种方法
  19. com.oracle:ojdbc6:12.1.0.1-atlassian-hosted‘ not found
  20. 服务器与云服务器租用有哪些区别呢?

热门文章

  1. 带你理清 Java 混乱的日志体系 - log4j、logback、log4j2、jcl、SLFJ 究竟是啥关系?
  2. 【Java基础】Java中的值传递、引用传递
  3. 牛客网_PAT乙级1001_A+B和C (15)
  4. HiveQL基本操作整理
  5. linux操作系统原理_Linux系统从新手到运维老鸟学习指南
  6. JUC队列-LinkedBlockingDeque(三)
  7. 1027 打印沙漏 (20分)——27行代码AC(结构清晰)
  8. 1026 程序运行时间 (15分)(附四舍五入标准写法)(解题报告)
  9. C++编程练习:设计一个银行账户类,包含户名、帐号以及当前余额属性,并且能完成开户、存款、取款和查询余额等行为。
  10. iapp启动图代码_代码神器:拒绝重复编码,这款IDEA插件了解一下.....