>백엔드 개발 >Golang >골랑과 얼랭의 차이점

골랑과 얼랭의 차이점

(*-*)浩
(*-*)浩원래의
2019-12-13 11:52:153891검색

골랑과 얼랭의 차이점

Erlang 첫 번째 버전은 Ericsson이 1991년에 사용자에게 출시되었습니다. 지속적인 개선과 개발을 거쳐 1996년 Ericsson은 모든 Erlang 사용자에게 매우 실용적이고 안정적인 버전을 제공했습니다. OTP 소프트웨어 라이브러리가 첫 번째 공개 버전을 출시했습니다. 1998년 소스 버전. (추천 학습: go)

현재 Erlang에서 지원하는 운영 체제에는 linux, windows, unix 등이 있습니다. 주류 운영 체제에 적합하다고 할 수 있으며, 특히 멀티 코어 지원 기능이 매우 적합합니다. 오늘날의 멀티 코어 CPU의 경우 분산 기능은 다양한 현재 분산 클러스터와도 잘 통합될 수 있습니다.

Go 언어는 프로그래밍 언어 설계에 대한 또 다른 시도이자 C 유사 언어에 대한 주요 개선 사항입니다. 이를 통해 기본 운영 체제에 액세스할 수 있을 뿐만 아니라 강력한 네트워크 프로그래밍 및 동시 프로그래밍 지원도 제공됩니다. Go 언어는 다양한 용도로 사용되며 네트워크 프로그래밍, 시스템 프로그래밍, 동시 프로그래밍 및 분산 프로그래밍에 사용될 수 있습니다.

Go 언어의 출시는 "간단한 배포, 좋은 동시성, 좋은 언어 설계 및 좋은 실행 성능"이라는 장점을 가지고 있으며 현재 많은 국내 IT 회사에서 사용하고 있습니다. 프로젝트를 개발하려면 언어를 사용하세요.

Erlang과 golang의 차이점:

첫 번째는 잠금에 대한 태도가 다르고, 두 번째는 비동기 IO에 대한 태도가 다르며, 세 번째는 메시지 메커니즘이 다릅니다. Erlang은 잠금을 매우 싫어하며 불변 변수가 잠금을 상당 부분 피할 수 있다고 믿습니다.

Golang의 관점은 잠금에는 큰 부담이 있지만 기본적으로 누군가가 상태를 공유하고 이를 변경하기 위해 서로 선점하면 잠금이 존재해야 한다는 것입니다.

Erlang 서버는 단일 프로세스이며 논리적 동시성이 없습니다. 프로세스는 실행 본체이므로 Golang 서버는 여러 프로세스(고루틴)로 구성됩니다. 각 요청은 독립적인 프로세스(고루틴)를 생성합니다.

그러나 Erlang은 다릅니다. 서버는 모든 동시 요청이 프로세스 메일박스에 들어갑니다. 그런 다음 서버는 처리를 위해 프로세스 메일박스에서 이메일(요청 내용)을 가져옵니다. 그래서 잠글 필요가 없습니다.

Erlang의 높은 동시성 구현, 첫째: 각 Erlang 물리적 서버에는 많은 서버가 있으며, 각 서버는 서로 간섭하지 않으며 동시에 실행될 수 있습니다. 두 번째는 단일 서버가 높은 동시성을 위해 비동기 IO를 사용한다는 것입니다.

go는 비동기 IO 코드가 있어서는 안 된다고 믿는 반면, Erlang은 비동기 IO를 기반으로 하며 경량 프로세스 모델을 혼합에 추가합니다.

Golang의 동시성 지원, 첫째: 가치 반환, golang에서 가장 중요한 것은 실행 비용을 줄이는 것입니다. golang의 최소 스택은 4K가 될 수 있습니다.

두 번째: 실행 가능한 본문을 언어에 내장된 표준 기능으로 사용합니다(golang에는 표준화된 코드 스타일이 하나만 있습니다). Go의 동시성 모델은 가장 오래된 동시성 모델로 루틴, 원자성 연산, 뮤텍스, 동기화, 메시지 및 동기 IO를 포함합니다.

위 내용은 골랑과 얼랭의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.