0
나는 소비자가 큐에서 아이템을 얻는 스레드 큐를 만들고 프로듀서는 아이템을 큐에 넣는다. 생성 된 소비자 수는 사용자 입력 값입니다. 나는 두 가지 방법을 시도했다. 첫 번째 버전은 잘 작동하지만 두 번째 버전은 제대로 작동하지 않습니다. 사용자 입력 제약 때문에 첫 번째 버전을 사용할 수 없습니다. 사실 나는이 둘의 차이점을 얻지 못했습니다. 첫 번째 스레드가 동시에 세 개의 스레드를 만드는 반면 두 번째 스레드는 하나씩 만듭니다. 이것에 대한 단서가 있습니까?다중 소비자를 가진 쓰레드 큐
auto c1 = async(launch::async, consumer);
auto c2 = async(launch::async, consumer);
auto c3 = async(launch::async, consumer);
for(int i = 1; i <= 3; i++)
auto c1 = async(launch::async, consumer);
좋은 설명. 그런 다음 두 번째 버전을 약간 변경하여 소비자 기능이 끝나기를 기다리지 않는 세 개의 스레드를 만들 수있는 방법이 있습니까? – user3081703
@ user3081703 결과가 마음에 들지 않는다면 왜 ['std :: thread'] (http://en.cppreference.com/w/cpp/thread/thread)를 사용하지 않을까요? 그리고 그들을 벡터로 밀어 넣어서 파괴되지 않도록하십시오. 그리고 필요할 때 나중에 연결할 수 있습니다. –