현재 .NET에서 메시지 기반 멀티 스레딩을 위해 Retlang을 사용하고 있습니다.이 라이브러리는 훌륭한 라이브러리입니다. 나는 명시 적 잠금을 가지고 있지 않으며 모든 스레드는 자체 비즈니스를 수행하고 응용 프로그램의 일부를 관리하며 메시지를 통해 다른 스레드와 통신합니다.짧고 드문 동작을위한 메시지 기반 다중 스레드 또는 스레드 풀?
이제 독자적인 게시자/구독자 스레드를 가질 수있는 응용 프로그램 기능을 구현해야합니다. 유일한 문제는이 스레드가 실제로 거의 작동하지 않는다는 것입니다. 10 분마다 게시자로부터 메시지를받을 것으로 예상됩니다. 메시지가 수신되면 몇 가지 작업을 수행하지만 수백 밀리 초 이상 걸리지는 않습니다.
그래서 나는 99.9 %의 시간 동안 잠자는 스레드가 실제로 좋은 선택인지 궁금해하기 시작했습니다. 이러한 종류의 작업을위한 스레드 풀이 있지만 메시지를받을 스레드를 제어 할 수 없으므로 오류가 발생하기 쉬운 잠금 장치를 사용해야합니다.
내 질문은 : 스레드를 유휴 상태로 두는 것이 자원으로 현명한 문제인지, 대다수의 시간을 기다리고 있습니까? 좋은 메시지 기반 아키텍처를 사용한 후에 공유 멀티 스레딩을 사용하면 시간이 거슬러 올라간 것처럼 느껴질뿐만 아니라 잠금 기능이있는 응용 프로그램의 유일한 부분이 될 것입니다. 그러나 나는 계속해서 "내가 여기서 뭔가 잘못하고있는 걸까?"하고 계속 궁금해합니다. 이 스레드로.
: 감사합니다. 모든 답변을 읽은 후에 다른 스레드가별로 문제가되지 않는다고 결정했습니다. 내 응용 프로그램은 메시지 기반 멀티 스레딩만으로 일관성을 유지할 것이며 성능 문제가 실제로 발생하더라도 (그렇다고해서는 안됨) 추가 조사를하겠습니다.
나는 약간의 추가 메모리에 대해 걱정하지 않는다. 메모리는 이러한 종류의 애플리케이션에 문제가되지 않는다. 주로 염려했던 응용 프로그램에서 다른 스레드의 잠재적 인 영향이었습니다. –