One of the differences between Linux and other *nix is that Linux processes *are* Linux threads:
http://www.linuxjournal.com/article/3814
But that's academic.
The reason you're crashing has little/nothing to do with threads, and everything to do with the fact that you've allocated 250,000 element arrays as local variables (off the stack).
As I recommended in my other post: I believe that's unwise. I would strongly urge you to allocate large objects from the heap, not the stack.
IMHO .. PSM