【发布时间】:2011-09-14 19:25:50
【问题描述】:
我在通过 sftp 上传文件的程序中使用线程。可以上传的文件数量可能非常大或非常小。我希望能够同时上传 5 个或更少,如果还有更多,让他们等待。我的理解通常是一个条件变量将用于此,但在我看来,这一次只允许 1 个线程。
cv = ConditionVariable.new
t2 = Thread.new {
mutex.synchronize {
cv.wait(mutex)
upload(file)
cv.signal
}
}
我认为这应该告诉它等待 cv 可用,然后在完成后发布它。我的问题是如何在限制数量的同时一次允许超过 1 个?
编辑:我在 Windows 上通过一键安装程序使用 Ruby 1.8.7
【问题讨论】:
-
您使用的 Ruby 版本对于这个问题很重要。
标签: ruby multithreading