Sam Roberts wrote:

> Can I do Array#push from multiple threads at the same time, and know
> that all the objs pushed from the threads are on the Array, in some
> indeterminate order? What about Array#delete from multiple threads,
> and know it was deleted (though only by one of the threads)?

AFAIK yes, because there are usually no Ruby thread context switches in 
C functions. But note that += and friends are not atomic.