I have read multiple documents and blogs and understood the below points
- Ruby is not multithreading since it has the Global Interpreter lock since its interpreter MRI were implemented in C
- Unicorn server provides multi worker facility but not multi-threading which is understandable, and Puma is multithreading and can work with JRuby happily with multithreading facility since JRuby have Java's power so JRuby have multithreading power so it can also be understandable
But if Ruby have GIL and can run only one thread at a time (as Martz's moto was to make a language more human-readable friendly, and to avoid deadlock or race condition), then how comes everywhere it mentioned that with Puma as a Rack-based Web server it runs Rails app with Multithreading power, when its crystal clear that Ruby is a Single threaded language?