순수 함수란 무엇인가
순수 함수는 입력값에 대해 항상 동일한 출력값을 반환하는 함수를 말합니다.
이러한 함수는 입력값 외에 다른 상태나 외부 환경에 의존하지 않기 때문에, 여러 스레드에서 동시에 호출해도 안전합니다.
또한 순수 함수는 입력값을 변경하지 않고, 항상 새로운 값을 반환하기 때문에 불변 데이터 구조와도 잘 맞습니다.
함수형 언어가 병렬성에서 이점을 가지는 이유
함수형 언어에서는 병렬성(parallelism)을 위해 순수 함수(pure function)와 불변 데이터 구조(immutable data structure)를 사용합니다.
함수형 언어에서는 상태 변이(state mutation)를 피하고 불변성(immutability)을 지향하기 때문에, 일반적으로 뮤텍스(mutex)와 같은 동시성 제어 기법이 필요하지 않습니다.
불변 데이터 구조는 한 번 생성되면 내부 상태를 변경할 수 없는 데이터 구조를 말합니다.
이러한 구조는 여러 스레드에서 동시에 읽을 수 있기 때문에, 스레드 간 공유가 필요한 경우에 사용됩니다.
불변 데이터 구조를 사용하면 스레드 간의 경합 상태(race condition)가 발생하지 않으며, 뮤텍스와 같은 복잡한 동시성 제어 기법이 필요하지 않습니다.
따라서 함수형 언어에서는 멀티 스레딩과 같은 동시성 처리를 위해 순수 함수와 불변 데이터 구조를 사용합니다.
이를 통해 동시성 처리를 간단하고 안전하게 처리할 수 있습니다.
'Computer Science' 카테고리의 다른 글
CPU (0) | 2023.11.30 |
---|