在Java中,为了编写一个向服务器发送请求的库,我通常实现某种调度器(与Twitter4J库中发现的调度器类似:http://github.com/yusuke/twitter4j/blob/master/twitter4j-core/src/main/java/twitter4j/internal/async/DispatcherImpl.java),以限制连接数量,执行异步任务等。演员“队列”?
这个想法是创建了N个线程。 “任务”排队并通知所有线程,其中一个线程在准备就绪时会从队列中弹出一个项目,完成工作,然后返回到等待状态。如果所有线程都忙于处理任务,那么该任务只是排队,而下一个可用线程将采用它。
这将连接的最大数量保持为N,并且允许最多N个任务同时运行。
我想知道可以用Actor来创建什么样的系统来完成同样的事情?有没有一种方法可以有N个Actor,当一条新消息准备好时,将它传递给一个Actor来处理 - 如果所有Actor都很忙,只需排队消息?
您所描述的是一个线程池,因为Java 5在标准库中,请参阅package java.util.concurrent(类ThreadPoolExecutor)。 – Jesper 2010-06-09 12:19:36