我試圖運行500個客戶端,同時向服務器發送一些請求以用於負載測試目的。客戶端又是一個紅寶石程序。聽起來微不足道。但是我正面臨奇怪的ruby線程問題。我的代碼看起來像這樣 -Ruby一次只創建3個線程
n = 10
n.times do
Thread.new do
`calc`
end
end
該代碼是一個示例。我只是試圖從命令行運行calc
命令(如果您在Windows以外的平臺上嘗試此代碼,請將其替換爲可在您的命令行或shell中運行的一些命令)。這將被'ruby my_client.rb
'取代,n的值也將被設置爲500(或其他)。
我在這裏面臨的問題是,無論我想要創建的線程數量是多少,一次只能創建線程數量爲。這只是3個計算窗口同時打開。其餘的線程只是在隊列中等待,等待這3個線程的終止。可能與阻塞和非阻塞呼叫有關。但是我嘗試了與Java相同的程序,並且工作得很完美。它是一個古老的說法,不建議使用紅寶石線程。這是真的,這是Ruby的線程問題還是我做錯了什麼?
對我來說很好,在Debian GNU/Linux上的版本是1.8.7.72-2。我在想,有特定於Windows的事情正在發生。 – womble 2009-02-14 05:00:08
這是可能的,但Java程序在相同的平臺,同一臺機器上完美工作。 – Chirantan 2009-02-14 05:07:38
在Windows XP SP3下使用ruby 1.8.7工作得很好。 – Lolindrath 2009-02-17 13:32:44