나는 태스크 대기열/스레드 풀 패턴 시스템을 n -threads 시스템과 비교하고있다. D 프로그래밍 언어는 처음이지만 C, Java 및 Python의 스레드로 작업했다. Tango 라이브러리를 사용하고 있으며 예제로 웹 서버를 구축하고 있습니다.탱고 (D) ThreadPool에 비동기 적으로 작업을 추가하는 방법은 무엇입니까?
tango.core.ThreadPool
을 내 스레드 풀로 사용하기로 결정했습니다. 내 프로젝트는 전통적인 스레딩과 작업 대기열 간의 사용 및 성능 향상에 중점을 둡니다. 풀은 대기열에서 작업을 소비하면서 블록, 현재의 thread -
ThreadPool.wait()
: 내가 3 가지 옵션을 가지고 있음을 보여준다.ThreadPool.shutdown()
- 풀의 작업을 완료하지만 이 아닌 큐의 대기열은입니다.ThreadPool.finish()
- 풀 및 대기열의 모든 작업을 완료하지만 더 이상 허용하지 않습니다.
내가 원하는 것은 없습니다. 귀하의 업무 목록이 이러한 시스템에서 성장할 수 있어야한다는 것이 제 이해입니다. 웹 서버는 매우 간단하고 순진합니다. 자원 관리가 작업 대기열에서 가능한 빨리 소비하는 것으로 만 구성 되더라도 많은 동시 요청으로 확장하기 위해 최선을 다하고 싶습니다.
메인 스레드가 다른 스레드에 참여해야하기 때문에 의심 스럽지만 스레딩 지식에 약간 녹슬지는 않습니다.
왜 D2를 사용하지 않습니까? 그것은 좋은/좋은 병렬 처리 기능을 가지고 있습니다. –
@Daevius : 그렇지 않으면 Brian이 Tango로 renonce해야합니다. – menjaraz
@Daevius : 개발 환경 때문에 D v. 1로 제한되었습니다. LDC와 Tango 만 사용 가능했습니다. – Brian