/**

     * Constructs a new {@code Thread} with no {@code Runnable} object and a

     * newly generated name. The new {@code Thread} will belong to the same

     * {@code ThreadGroup} as the {@code Thread} calling this constructor.

     *

     * @see java.lang.ThreadGroup

     * @see java.lang.Runnable

     */

    public Thread() {

        create(null, null, null, 0);

    }


    /**

     * Constructs a new {@code Thread} with a {@code Runnable} object and a

     * newly generated name. The new {@code Thread} will belong to the same

     * {@code ThreadGroup} as the {@code Thread} calling this constructor.

     *

     * @param runnable

     *            a {@code Runnable} whose method <code>run</code> will be

     *            executed by the new {@code Thread}

     *

     * @see java.lang.ThreadGroup

     * @see java.lang.Runnable

     */

    public Thread(Runnable runnable) {

        create(null, runnable, null, 0);

    }


    /**

     * Constructs a new {@code Thread} with a {@code Runnable} object and name

     * provided. The new {@code Thread} will belong to the same {@code

     * ThreadGroup} as the {@code Thread} calling this constructor.

     *

     * @param runnable

     *            a {@code Runnable} whose method <code>run</code> will be

     *            executed by the new {@code Thread}

     * @param threadName

     *            the name for the {@code Thread} being created

     *

     * @see java.lang.ThreadGroup

     * @see java.lang.Runnable

     */

    public Thread(Runnable runnable, String threadName) {

        if (threadName == null) {

            throw new NullPointerException();

        }


        create(null, runnable, threadName, 0);

    }


    /**

     * Constructs a new {@code Thread} with no {@code Runnable} object and the

     * name provided. The new {@code Thread} will belong to the same {@code

     * ThreadGroup} as the {@code Thread} calling this constructor.

     *

     * @param threadName

     *            the name for the {@code Thread} being created

     *

     * @see java.lang.ThreadGroup

     * @see java.lang.Runnable

     *

     */

    public Thread(String threadName) {

        if (threadName == null) {

            throw new NullPointerException();

        }


        create(null, null, threadName, 0);

    }