Threads in Java can be created by extending the Thread class and overriding its run() method, or by implementing the Runnable interface and passing an instance to a Thread constructor. Runnable is an interface (not a class), so you implement it, not extend it. Throwable is for exceptions, not threads.