After I create a certain number of threads, my program crashes [Unix]
June 9th, 2005 by Bryan O'Sullivan
By default, POSIX threads are created non-detached. You need to perform a join on each non-detached thread, or else storage will never be freed up when they exit. As an alternative, you can create detached threads, for which storage will be freed as soon as they exit. This latter approach is generally better; you should only create non-detached threads if you explicitly need to know when or if they exit.
After my program runs for 1-3 hours, all the threads terminate but I cannot know exactly what caused this. Is there a way to determine which thread terminates first?