gives you the answer:
A suggested alternative to pthread_create() would be to define two
separate operations: create and start. Some applications would find
such behavior more natural. Ada, in particular, separates the
"creation" of a task from its "activation".
Splitting the operation was rejected by the standard developers for
* The number of calls required to start a thread would increase from
one to two and thus place an additional burden on applications that do
not require the additional synchronization. The second call, however,
could be avoided by the additional complication of a start-up state
* An extra state would be introduced: "created but not started". This
would require the standard to specify the behavior of the thread
operations when the target has not yet started executing.
* For those applications that require such behavior, it is possible to
simulate the two separate steps with the facilities that are currently
provided. The start_routine() can synchronize by waiting on a
condition variable that is signaled by the start operation.