백그라운드에서 작업을 수행하는 스레드가 있고 프로그램에 실제 작업이있을 때마다 일시 중지하려고합니다. 끝나면 백그라운드 스레드를 계속 진행합니다. 예 :외부에서 스레드를 중지하십시오.
ta = Thread.new { loop { print 'a'; sleep 0.2 } }
sleep 0.5
# put ta to sleep
5.times { print 'b'; sleep 0.2 }
# let ta resume
sleep 0.8
puts
출력은 aaabbbbbaaaaa
과 같아야합니다. 현재는 aaabababababaaaaa
입니다.
스레드가 Thread.stop
을 통해 자체를 중지 할 수 있지만 스레드를 "외부"에서 중지하는 방법이 없습니다. 간단한 해결책이 있습니까? 당신이 필요로하는 무엇
나는 몇 가지 조사를했고, 나는 (은'Thread' 클래스에서 아무것도 발견하지 않았습니다 당신 자신, I를 않았다 취하다). '# ruby' : JonnieCache : 잠금 장치/세마포어 등이 필요합니다. 고통에 대비하십시오. https://github.com/igrigorik/agent – Reactormonk