A servlet may be used by more than one thread, but that doesn't mean that a servlet
is a thread. A thread may instantiate and use any
Java classes.
As a simpler example, consider the following code:
Each "Thing" is a thread, and the Thinger runs 10 of them at once. Each thread creates a
String and uses a method it provides. It is important to notice that the String class is not a Thread, and it doesn't implement Runnable, yet it is used by many threads at once.
A servlet container also creates several threads, (for a simple example, one for each request). Each of these threads uses whatever class and object instances it needs (such as your servlet class as well as classes for things like Request and Response objects) to service the request, but these classes and objects it uses are not themselves threads.