Use Rubinius or jRuby and not MRI if you want to escape the GIL. If you use any concurrency approaches with a GIL in place, there will be only an appearance of parallelism.
They can't run in parallel while in the interpreter on MRI. Code that spends lot of time in the kernel (long running system calls for IO etc.) or in C extensions (say database adapters) can run properly in parallel, so on MRI it very much depends on your workload.
If you want to ensure proper parallelism, then fork.
The thread safe Array class is interesting how is that different from ruby's built in Queue class- in what context I guess would it make sense in place of Queue?
It's a toolbox library so to explain how to use it in general I'd have to explain all of those tools individually.
If you're familiar with concurrency or parallelism in another language I can tell you how to achieve something similar in many cases using concurrent-ruby.
Or if you have some algorithm you want to make concurrent or parallel from scratch ask us in the Gitter room.