operating systems – What are joinable, joined, detached modes of threads?

In posix library, if we create a thread in main function, then it is in joinable state.

  1. What are this 3 modes, joinable, joined, detached?
  2. Is it recommended to use pthread_join or pthread_detach?
  3. What if the thread is not joined or detached? How the resources are deallocated in this mode?
  4. What happens if pthread_exit is called from main thread for each of 3 modes?

By joinable, i mean that without using pthread_join or pthread_detach i.e. default mode after creating thread.

  1. Why pthread_join is named like this, why not simply pthread_wait?

Consider linux implementation of threads.