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

얼랭과 골랭의 차이점

(*-*)浩
(*-*)浩원래의
2019-12-02 15:49:154994검색

얼랭과 골랭의 차이점

Erlang과 golang의 차이점:

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

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

Erelang 서버는 단일 여정이며 동시성이 없는 것이 논리적입니다. 프로세스는 실행 주체이므로 Golang의 프로세스(고루틴)와 다릅니다. 함께 서버를 구성하세요. 각 요청은 독립적인 프로세스(고루틴)를 생성합니다.

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

Erlang의 높은 동시성 구현:

첫째: 각 Erlang 물리적 서버에는 많은 서버가 있으며 각 서버는 서로 간섭하지 않으며 동시에 실행될 수 있습니다.

두 번째는 단일 서버가 높은 동시성을 위해 비동기 IO를 사용한다는 것입니다.

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

Golang의 동시성 지원:

첫 번째: 가치 반환. golang에서 가장 중요한 것은 golang의 최소 스택이 4K일 수 있다는 것입니다.

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

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

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