Thread constructors accept either a Runnable object (for the task to execute), a ThreadGroup, a name string, or combinations thereof. Option A is invalid because Thread doesn't accept a plain Object parameter. Option E is invalid because Object doesn't implement Runnable. Options B (String name), C (Runnable target), and D (ThreadGroup + Runnable + name) match valid Thread constructor signatures in Java.