Sadly, there are no hard rules since people use them interchangeably
(like OracleConnectionCacheImpl which implements a connection pool) but
here is my take:

Object pooling is for the most part used to reduce the cost of creating
expensive objects. In a pool you generally have a bunch of the same
object, all of which are returned to the client with the same state (for
example, a connection pool always gives you a connection to a given data
source, a string buffer pool always gives you a string buffer with
length zero, ...). Generally pool policy is that you request an object
and get exclusive access to it until you release it.

Caching is for keeping objects with specific state associated with a
key. When you cache and object with a given key, you get back the same
object. This is not always strictly true because the object might have
been serialized and unserialized, but the point is that the cache does
not ensure that you get exclusive access.

So, if that makes any sense, pooling is great for reusing expensive to
create objects which are not thread safe, caching is great for holding
data objects which are thread safe and serializable. 

I tried =]

-- jt

On Fri, 2002-08-30 at 01:43, yangjs wrote:
> 
> hi,
>    I'm puzzled between "cache system" and "pool system", anyone can tell me how to 
>distinguish them.
> 
> 
> 
> 
> thanks.
> 
> 
> 
>   ----------------                                    
>        /|/|                            
>       | -''/"',___,,--''"`-,_          
>       `6_ 6  )   `-,  (    ),`-.__.`)  
>       /_Y_./',, _  )  `._  `,``-..-'   
>    _.'.`='   _ / / --'_.','            
>  (il)'      (li)''   ((!-'             
> 



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to