0
작업자 스레드가 명령을 기다렸다가 수행 한 다음 호출자에게 결과를 다시 보내고 싶습니다. 이것은 응답으로 인해 일반 생산자/소비자 문제와 다릅니다. 두 가지 방법으로 생산자와 소비자가 의사 소통을 할 수 있습니까?
main
{
construct workers
push to shared input buffers
notify workers
wait
print results from shared output buffer
}
worker
{
wait
read from shared input buffer
do work
notify main
}
이 궤도에 나는 건가요 :
이 내가 생각하고 무엇인가? 대기자가 대기 시작하기 전에 응답 할 수있는 기회가 있습니까?
당신이 올바른 궤도에
조건이 충족 될 때까지 실행되는 스레드가 있습니다. 그런 다음 스레드 2에 알리고 실행을 중지합니다. 스레드 2는 깨우고 실행되며 조건을 충족하고 스레드 1에 알리고 중지합니다. 스레드 1이 깨어서 실행됩니다. 모든 작업이 직렬화됩니다. 스레딩의 필요성을 없애고 단일 스레드 상태 머신 (https://en.wikipedia.org/wiki/Finite-state_machine)을 사용하는 것이 좋습니다. – user4581301
@ user4581301 제 계획은 여러 명의 근로자를 두어 병렬로 작업을 수행하는 것입니다. (나는 게시물을 업데이트했습니다) – Josh
작업자는 다시 시작해야합니까, 아니면 필요한 경우 새 스레드를 만드시겠습니까? – user4581301