我在通过sftp上传文件的程序中使用线程。可以上传的文件数量可能非常大或很小。我希望能够同时上传5个或更少,并且如果还有更多人在等待。我的理解通常是一个条件变量将用于此,但它看起来像我一次只允许1线程。限制并发线程
cv = ConditionVariable.new
t2 = Thread.new {
mutex.synchronize {
cv.wait(mutex)
upload(file)
cv.signal
}
}
我认为应该告诉它等待cv在完成时等待释放它。我的问题是,我怎么能这样做,允许一次超过1个,但仍然限制数量?
编辑:我使用Ruby 1.8.7在Windows上从1次点击安装
您正在使用的Ruby版本对于此问题很重要。 – 2011-06-14 15:17:37