Repolode
ruby-concurrency

ruby-concurrency/concurrent-ruby

futures, promises, 스레드 풀, agent, atom, 스레드 안전 컬렉션, 동기화 클래스를 비롯한 동시성 프리미티브를 제공하는 Ruby gem입니다.

스타
5,837
포크
423
열린 이슈
53
마지막 커밋
8일 전

어떤 프로젝트인가요?

Concurrent Ruby는 Ruby 애플리케이션에 폭넓은 동시성 추상화를 제공하는 gem입니다. 통합된 futures 및 promises 프레임워크인 Promises, ScheduledTask, TimerTask 같은 비동기 도구와 Java에서 영감을 받은 스레드 풀 및 기타 executor를 포함합니다.

또한 Array, Hash, Set의 스레드 안전 하위 클래스, 높은 동시성을 지원하는 Map, 불변 및 가변 구조체, AtomicReference와 AtomicFixnum 같은 원자적 타입을 비롯해 스레드 안전 값 객체와 컬렉션을 제공합니다. 공유 상태 관리를 위해 Clojure 스타일의 Agent와 Atom, 소프트웨어 트랜잭셔널 메모리를 위한 TVar, CountDownLatch, Semaphore, ReadWriteLock 같은 동기화 클래스도 제공합니다.

이 gem은 외부 gem 의존성이 없도록 설계되었으며 MRI, JRuby, TruffleRuby에서 실행됩니다. MRI용 선택적 C 확장 기능은 별도의 concurrent-ruby-ext gem으로 제공되며, Actor와 Channel 같은 실험적 기능은 동반 gem인 concurrent-ruby-edge에 포함되어 있습니다.

핵심 기능

  • 01futures, promises, 지연 평가를 결합한 Promises 프레임워크.
  • 02Java의 concurrent 패키지에서 영감을 받은 스레드 풀 및 기타 executor.
  • 03스레드 안전한 Array, Hash, Set, Map 컬렉션.
  • 04락 없이 값을 갱신할 수 있는 atomic reference, 카운터, 불리언.
  • 05공유 상태 관리를 위한 Agent와 Atom, 트랜잭셔널 메모리를 위한 TVar.
  • 06CountDownLatch, Semaphore, ReadWriteLock을 비롯한 동기화 프리미티브.

활용 사례

  • 외부 의존성을 추가하지 않고 Ruby 서비스에서 백그라운드 작업이나 병렬 I/O 작업을 실행.
  • latch, barrier, semaphore를 사용해 여러 스레드 간 작업을 조율.
  • Ruby 프로세스 내에서 주기적 작업이나 지연 작업을 예약.
  • atom이나 스레드 안전 컬렉션을 사용해 여러 스레드에서 가변 상태를 안전하게 공유.

사용 전 알아둘 점

  • 메타데이터에서 라이선스를 감지할 수 없습니다. 사용하기 전에 저장소의 라이선스 파일을 확인하세요.
  • companion gem인 concurrent-ruby-edge의 기능은 자주 변경되어 이전 버전과의 호환성이 깨질 수 있습니다.

토픽

자주 묻는 질문

concurrent-ruby은(는) 무엇인가요?
futures, promises, 스레드 풀, agent, atom, 스레드 안전 컬렉션, 동기화 클래스를 비롯한 동시성 프리미티브를 제공하는 Ruby gem입니다. Concurrent Ruby는 Ruby 애플리케이션에 폭넓은 동시성 추상화를 제공하는 gem입니다. 통합된 futures 및 promises 프레임워크인 Promises, ScheduledTask, TimerTask 같은 비동기 도구와 Java에서 영감을 받은 스레드 풀 및 기타 executor를 포함합니다.
concurrent-ruby은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
concurrent-ruby은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
concurrent-ruby은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. concurrent-ruby의 마지막 커밋은 2026년 10월 16일입니다.
concurrent-ruby은(는) 어디에 사용할 수 있나요?
외부 의존성을 추가하지 않고 Ruby 서비스에서 백그라운드 작업이나 병렬 I/O 작업을 실행. latch, barrier, semaphore를 사용해 여러 스레드 간 작업을 조율. Ruby 프로세스 내에서 주기적 작업이나 지연 작업을 예약. atom이나 스레드 안전 컬렉션을 사용해 여러 스레드에서 가변 상태를 안전하게 공유.
concurrent-ruby은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/ruby-concurrency/concurrent-ruby

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트