I am looking for a python webserver which is multithreaded instead of being multi-process (as in case of mod_python for apache). I want it to be multithreaded because I want to have an in memory object cache that will be used by various http threads. My webserver does a lot of expensive stuff and computes some large arrays which needs to be cached in memory for future use to avoid recomputing. This is not possible in a multi-process web server environment. Storing this information in memcache is also not a good idea as the arrays are large and storing them in memcache would lead to deserialization of data coming from memcache apart from the additional overhead of IPC.
I implemented a simple webserver using BaseHttpServer, it gives good performance but it gets stuck after a few hours time. I need some more matured webserver. Is it possible to configure apache to use mod_python under a thread model so that I can do some object caching?
Its hard to give a definitive answer without knowing what kind of site you are working on and what kind of load you are expecting.  Sub second performance may be a serious requirement or it may not.  If you really need to save that last millisecond then you absolutely need to keep your arrays in memory.  However as others have suggested it is more than likely that you don't and could get by with something else.  Your usage pattern of the data in the array may affect what kinds of choices you make.  You probably don't need access to the entire set of data from the array all at once so you could break your data up into smaller chunks and put those chunks in the cache instead of the one big lump.  Depending on how often your array data needs to get updated you might make a choice between memcached, local db (berkley, sqlite, small mysql installation, etc) or a remote db.  I'd say memcached for fairly frequent updates. A local db for something in the frequency of hourly and remote for the frequency of daily.  One thing to consider also is what happens after a cache miss.  If 50 clients all of a sudden get a cache miss and all of them at the same time decide to start regenerating those expensive arrays your box(es) will quickly be reduced to 8086's.  So you have to take in to consideration how you will handle that.  Many articles out there cover how to recover from cache misses.  Hope this is helpful.
A good multithreaded python webserver?