현재 멀티 스레딩을 과도하게 사용하고있는 것 같습니다.
A, B 및 C의 세 가지 유형의 데이터가 있습니다.
각각은 A
복수로 변환 할 수 B
의 각각은 B
복수로 변환 할 수 C
의.
나는 C
s 치료에만 관심이 있습니다.
나는 이것을 몇 가지 변환 함수로 상당히 쉽게 작성할 수 있습니다. 그러나 스레드, 세 개의 대기열 ( queue_a
, queue_b
및 queue_c
)로 구현하는 것을 보았습니다 . 서로 다른 변환을 수행하는 두 개의 스레드와 한 명의 작업자가 있습니다.
ConverterA
읽고queue_a
쓴다queue_b
ConverterB
읽고queue_b
쓴다queue_c
Worker
각 요소를 처리queue_c
변환은 상당히 평범하며이 모델이 너무 복잡한 지 모르겠습니다. 그러나 그것은 나에게 매우 강력 해 보입니다. 각 "컨버터"는 데이터가 대기열에 도착하기 전에도 작동을 시작할 수 있으며 코드에서 언제든지 새 A
s 또는 B
s를 "제출" 할 수 있으며 변환 파이프 라인을 트리거하여 작업자가 작업을 트리거합니다. 실.
결과 코드조차도 더 단순 해 보입니다. 그러나 여전히 간단한 것을 위해 스레드를 남용하는지 확실하지 않습니다.