我试图运行500个客户端,同时向服务器发送一些请求以进行负载测试.客户端再次成为ruby程序.听起来微不足道.但是我遇到了ruby线程的奇怪问题.我的代码看起来像这样 -
n = 10 n.times do Thread.new do `calc` end end
代码是一个示例.我只是试图从命令行运行calc
命令(如果您在Windows以外的平台上尝试此代码,请将其替换为适用于您的命令行或shell的命令).稍后将替换为' ruby my_client.rb
',并且n的值将设置为500(或其他).
我在这里遇到的问题是,无论我想创建多少个线程,一次只创建3个线程.那只是同时打开3个计算窗口.剩余的线程只是在队列中等待等待这3个线程的终止.可能与阻止和非阻塞调用有关.但是我尝试了Java相同的程序,它运行得很好.这是一句老话,不建议使用红宝石线.这是Ruby的线程存在问题还是我做错了?