Create a thread with user data. Thread is not created until start has been called.
Wait for that thread termination Again, this function can be called only once. This actually releases the thread resource.
Starts the thread. Threads are created suspended. This function can only be called once.
Optimistic thread, failure not supported