Trong ruby, có thể gây ra một luồng tạm dừng từ một luồng chạy đồng thời khác.Ruby Pause thread
Dưới đây là mã mà tôi đã viết cho đến thời điểm này. Tôi muốn người dùng có thể nhập 'tạm dừng luồng' và chuỗi mẫu500 để tạm dừng.
#!/usr/bin/env ruby
# Creates a new thread executes the block every intervalSec for durationSec.
def DoEvery(thread, intervalSec, durationSec)
thread = Thread.new do
start = Time.now
timeTakenToComplete = 0
loopCounter = 0
while(timeTakenToComplete < durationSec && loopCounter += 1)
yield
finish = Time.now
timeTakenToComplete = finish - start
sleep(intervalSec*loopCounter - timeTakenToComplete)
end
end
end
# User input loop.
exit = nil
while(!exit)
userInput = gets
case userInput
when "start thread\n"
sample500 = Thread
beginTime = Time.now
DoEvery(sample500, 0.5, 30) {File.open('abc', 'a') {|file| file.write("a\n")}}
when "pause thread\n"
sample500.stop
when "resume thread"
sample500.run
when "exit\n"
exit = TRUE
end
end
"Tôi là người mới đối với Ruby; chỉ học nó trong vài ngày" - và bạn đã sẵn sàng trên luồng chưa? Ấn tượng đấy! –
Haha cảm ơn! Có vẻ như một ngôn ngữ thực sự tốt đẹp; Tôi thích toàn bộ khối điều và năng suất! –