[clojure] Clojure에서 애전 신호와 쓰레드 안전성
Clojure는 함수형 프로그래밍 언어로, 애전 신호 (Futures) 와 쓰레드 안전성 (Thread safety) 에 대한 내장 지원을 제공합니다.
애전 신호 (Futures)
Clojure의 애전 (Futures)은 지연된 계산을 나타냅니다. future
함수를 사용하여 비동기적으로 동작하는 코드 블럭을 생성할 수 있습니다.
예를 들어:
(def f (future (do-some-long-computation)))
애전은 결과가 필요할 때까지 계산을 지연시키고, 그 결과를 확실히 하기 위해 잠재적으로 차단시킬 수 있는 기능을 제공합니다.
쓰레드 안전성 (Thread Safety)
Clojure는 불변 데이터 구조 와 소프트웨어 트랜잭션 메모리 (STM) 를 통해 쓰레드 안전성을 보장합니다.
불변 데이터 구조는 여러 쓰레드에서 안전하게 공유할 수 있는 불변성을 제공하여 동시성 문제를 해결합니다.
또한, STM은 동시적인 트랜잭션을 지원하여 여러 쓰레드 간 데이터를 안전하게 조작할 수 있도록 합니다.
이러한 내장 기능들 덕분에 Clojure로 개발할 때 애전 신호와 쓰레드 안전성에 대한 걱정을 덜 수 있습니다.
참조: Clojure 공식 문서