您正在寻找类似这样的东西。
ExecutorService service = Executors.newFixedThreadPool(4);
service.submit(new Runnable() {
public void run() {
sendSymbol();
}
});
创建执行程序服务。这将保留线程池以供重用。与每次为每个异步方法调用创建一个新线程相比,效率要高得多。
如果您需要对ExecutorService的更高程度的控制,请使用ThreadPoolExecutor。至于配置此服务,将取决于您的用例。您多久调用一次此方法?如果经常,您可能至少要一直在池中保留一个线程。我最多不会保留超过4或8。
由于您sendSymbol
每半秒仅调用一次,因此一个线程应该足够,因为sendSymbols
这不是一个非常耗时的例程。我将配置一个带有1个线程的固定线程池。您甚至可以重用此线程池来提交其他异步任务。
只要您提交的次数不多,您致电时就会响应sendSymbol
。