> For the complete documentation index, see [llms.txt](https://hanfak.gitbook.io/workspace/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hanfak.gitbook.io/workspace/general-paradigms/programming-types/concurrent-and-parallel-prog/thread-per.md).

# Thread per connection or request model

* Thread per request will create a thread for each HTTP Request the server receives
  * Thread Per Request is faster as most web container use Thread Pooling.
  * A thread per request model is one in which a single thread is coupled to the lifecycle of a request.
* Thread per connection will reuse the same HTTP Connection from multiple requests(keep-alive) .AKA HTTP persistent connection but please note that this supported only from HTTP 1.1
* Thread per request should be better, because it reuses threads, while some client may be idle. If you have a lot of concurrent users, they could be served with a less number of threads and having equal number of thread would be more expensive.
  * we do not know if user is still working with application, so we cant know when to destroy a thread. With a thread per request mechanism, we just use a thread pool.
