Re: Improvents on agent,user-custom thread pool.

2012-06-07 Thread mnicky
I just came across this thread (and also [1]) when I was googling for a way 
to customize the Clojure agents. Were any of these 'post 1.2' suggestions 
reconsidered since then? (I see they haven't been implemented yet).

Marek.

[1] 
https://groups.google.com/forum/?fromgroups#!topic/clojure-dev/qDfxSoesp4o

On Monday, July 26, 2010 2:54:29 AM UTC+2, Alex Miller wrote:

 Hey Dennis, 

 I suggested some of the same ideas here (http://tech.puredanger.com/ 
 2010/06/08/clojure-agent-thread-pools/http://tech.puredanger.com/2010/06/08/clojure-agent-thread-pools/)
  
 and Rich said that these 
 seemed like good suggestions post-1.2.  I think allowing you to modify 
 the agent thread pools after construction seems possibly dangerous 
 from a concurrency point of view, but maybe that would be ok. 

 Alex 


 On Jul 25, 3:47 am, dennis killme2...@gmail.com wrote: 
  Agent use two thread pools to execute actions,send use a fixed thread 
  pool (2+cpus threads),and send-off use a cached thread pool.These 
  pools are global in clojure system. 
  
  I think the Agent should allow users to customize the thread pool, 
  if no custom,  then use the global thread pool. 
 Why do I need a custom thread pool? 
 First, the default thread pool is global, send use the thread pool 
  is a fixed size cpus +2, is likely to become the system bottleneck 
  sometime. Although you can use the send-off, use the cache thread 
  pool, but in a real world application, I can not use the cache thread 
  pool, which will introduce the risk of OutOfMemoryError, normally I 
  like to use a fixed-size thread pool. 
  
Second, the actions which global thread pool execute are from a 
  variety of agents, the actions are not homogeneous, and can not 
  maximize the efficient use of the thread pool, we hope that you can 
  specify different agent to isolate a particular thread pool to 
  maximize the use of thread pool . 
  
 I think Agent could add two new functions: 
  
  (set-executor! agent (java.util.concurrent.Executors/ 
  newFixedThreadPool 2)) 
  (shutdown-agent agent) 
  
  set-executor! is to set the agent's custom thread pool,and shutdown- 
  agent to shutdown the agent's custom thread pool.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Improvents on agent,user-custom thread pool.

2010-07-25 Thread dennis

Agent use two thread pools to execute actions,send use a fixed thread
pool (2+cpus threads),and send-off use a cached thread pool.These
pools are global in clojure system.

I think the Agent should allow users to customize the thread pool,
if no custom,  then use the global thread pool.
   Why do I need a custom thread pool?
   First, the default thread pool is global, send use the thread pool
is a fixed size cpus +2, is likely to become the system bottleneck
sometime. Although you can use the send-off, use the cache thread
pool, but in a real world application, I can not use the cache thread
pool, which will introduce the risk of OutOfMemoryError, normally I
like to use a fixed-size thread pool.

  Second, the actions which global thread pool execute are from a
variety of agents, the actions are not homogeneous, and can not
maximize the efficient use of the thread pool, we hope that you can
specify different agent to isolate a particular thread pool to
maximize the use of thread pool .

   I think Agent could add two new functions:

(set-executor! agent (java.util.concurrent.Executors/
newFixedThreadPool 2))
(shutdown-agent agent)

set-executor! is to set the agent's custom thread pool,and shutdown-
agent to shutdown the agent's custom thread pool.



-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Improvents on agent,user-custom thread pool.

2010-07-25 Thread Alex Miller
Hey Dennis,

I suggested some of the same ideas here (http://tech.puredanger.com/
2010/06/08/clojure-agent-thread-pools/) and Rich said that these
seemed like good suggestions post-1.2.  I think allowing you to modify
the agent thread pools after construction seems possibly dangerous
from a concurrency point of view, but maybe that would be ok.

Alex


On Jul 25, 3:47 am, dennis killme2...@gmail.com wrote:
 Agent use two thread pools to execute actions,send use a fixed thread
 pool (2+cpus threads),and send-off use a cached thread pool.These
 pools are global in clojure system.

     I think the Agent should allow users to customize the thread pool,
 if no custom,  then use the global thread pool.
    Why do I need a custom thread pool?
    First, the default thread pool is global, send use the thread pool
 is a fixed size cpus +2, is likely to become the system bottleneck
 sometime. Although you can use the send-off, use the cache thread
 pool, but in a real world application, I can not use the cache thread
 pool, which will introduce the risk of OutOfMemoryError, normally I
 like to use a fixed-size thread pool.

   Second, the actions which global thread pool execute are from a
 variety of agents, the actions are not homogeneous, and can not
 maximize the efficient use of the thread pool, we hope that you can
 specify different agent to isolate a particular thread pool to
 maximize the use of thread pool .

    I think Agent could add two new functions:

 (set-executor! agent (java.util.concurrent.Executors/
 newFixedThreadPool 2))
 (shutdown-agent agent)

 set-executor! is to set the agent's custom thread pool,and shutdown-
 agent to shutdown the agent's custom thread pool.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en