웹 서비스를 청취하는 작업에 참여했습니다. 푸시 서비스를 통해 xml 데이터를 전송합니다. 데이터는 약간의 계산을 거친 후 표시됩니다.잠금 대기열 대 잠금 해제 대기열
대기열을 사용하여 서비스 수신기에서 데이터를 저장하고 비즈니스 로직 코드로 데이터를 읽을 계획입니다. 순수한 단일 생산자 단일 고객 대기열입니다.
웹 서비스 푸시로 데이터를 수신해야하므로 항상 데이터를 받고 대기열로 밀어 넣어야합니다. 나는 boost_lockfree_spsc_queue
을 사용하는 것을 생각했다. 잠금 대기열 인 경우 청취자는 잠금을 획득하는 데 잠시 기다려야하므로 반대로 boost_lockfree_spsc_queue
에는 잠금이 필요하지 않습니다.
내가 저장하기 위하여려고하고 데이터는
struct MemoryStruct {
char *memory;
size_t size;
};
되고 큐는 내가 조금 혼란 가지고
boost::lockfree::spsc_queue<MemoryStruct*> lockFreeQ{100};
여기 읽기 성능 섹션 후입니다.
프로덕션 목적으로이 boost_lockfree_spcc_queue를 사용하는 것이 안전합니까? 또는 표준 대기열 (C++ 11)을 잠금과 함께 사용해야합니까?
감사합니다.
예 생산 요구 사항을 준수하는 한 사용 요구 사항을 준수하는 것이 안전합니다. 어떤 부분을 혼란스럽게 만들었습니까? – sehe
당신은'MemoryStruct'를 사용하지만'boost'가 프로그램을 망칠 까봐 걱정됩니까? – nwp
MemoryStruct 사용에 문제가 있습니까? – Kid