Creates and returns a new thread of control.
The optional name provides a convenient way of referring to the thread to the user. If not supplied, the name defaults to "thread".
The optional group allows the new thread to be created as a member of a thread group other than the current thread group. Since a thread's group cannot be changed once created, this is the only way to create a thread running in a different group.
The newly created thread is initially suspended, with a suspend count of 1. Use thread-resume to make the thread available for execution.
The behavior of the thread is to invoke the given thunk. When thunk returns, the thread enters the complete state and thread-join returns (all) the values returned by thunk.