Thin can be multi-threaded, but only if you configure it to be so, by default it is single-threaded (evented). From the answer to the question you linked to:
since Sinatra 1.3.0, Thin will be started in threaded mode, if it is started by Sinatra (i.e. with
ruby app.rb
, but not with thethin
command, nor withrackup
).
There doesn’t appear to be a way to get rackup
to pass the threaded option through to Thin, so you will need to use either thin start --threaded
or ruby my_app.rb
to get threading on Thin.