Checking network input processing by Python for a multi-threaded server

Markus Elfring Markus.Elfring at web.de
Sun May 19 02:37:02 EDT 2019


> socketserver threading model is that the main server loops waiting for
> connection requests, when it receives a request it creates a handler thread,

This data processing style can be generally fine as long as you would like
to work without a thread (or process) pool.


> and then it completely forgets about the thread

I have taken another look at the implementation of the corresponding methods.
https://github.com/python/cpython/blob/3.7/Lib/socketserver.py#L656

I get an other impression from the statements “self._threads.append(t)” (process_request)
and “thread.join()” (server_close).


> -- the thread is independent and completes the handling of the request.

Will a corresponding return value bet set?


> If you need to ensure everything has finished before starting the next server instance,

I am still looking for the support of software constraints in this direction.


> you will have to write the extensions to socketserver.

Will the development situation evolve any more here?

Regards,
Markus



More information about the Python-list mailing list