cplusplus: 실전적 클래스 설계와 구현

  • 홈
  • 태그
  • 방명록

producer-consumer 1

C++ Lockfree Queue 항상 좋은 선택일까?

동시성 프로그래밍에서 락-프리(queue) 데이터 구조는 매력적으로 보일 수 있습니다. 블로킹이 없는 비블로킹 설계 덕분에 높은 성능과 낮은 지연 시간을 기대할 수 있기 때문입니다. 그러나 락-프리 큐가 항상 최선일지는 정말 고려할 점이 생각보다 많습니다.장점 - 블로킹 없는 높은 성능, 지연시간 감소, 교착상태 없음단점 - 구현시 복잡도(CAS경합, 메모리 관리, ABA문제), 대기 시 CPU소모량, 제약조건들 또는 외부 라이브러리 의존성.락프리 알고리즘을 구현하려면 하드웨어부터 운영체제, 컴파일러, 그리고 애플리케이션 레벨까지 모든 계층에서 세심한 주의가 필요합니다. C++ Core Guidelines에서는 락프리 프로그래밍을 정말 필요치 않으면 사용하지 말라고 권고하고 있으며 이런 구현상의 난이도 ..

카테고리 없음 2024.12.15
이전
1
다음
더보기

공지사항

  • 이 블로그는 왜 시작되었을까요?
  • 분류 전체보기 (26)

최근글과 인기글

  • 최근글
  • 인기글

Tag

Modern, recvmmsg, Atomic, blockingqueue, crpt, sftp client, lockfree, C++17, 제로, C++, 제로코스트추상화, template, is_same_v, zero-cost, std::optional, shared_ptr, lock_guard, cpp, rcu, spinlockguard,

Archives

  • C++ Core Guidelines
  • C++ Core Guidelines 한국어

티스토리툴바