首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaApns不是在ThreadPoolExecutor工作吗?

JavaApns不是在ThreadPoolExecutor工作吗?
EN

Stack Overflow用户
提问于 2012-03-14 09:09:51
回答 1查看 123关注 0票数 0

为了保持一个ApnsService的活力,我创建了一个ThreadPoolExecutor来保存线程以发送推送。这是工人的代码:

公共静态类PushWorker实现Runnable{

代码语言:javascript
复制
    private static final Logger log = Logger.getLogger(PushWorker.class);

    private String token;
    private String alert;
    private int badge;
    private String sound;
    private ApnsService service;

    public PushWorker(ApnsService srv, String t, String a, int b, String s){
        token = t;
        alert = a;
        badge = b;
        sound = s;
        service = srv;
    }
    @Override
    public void run() {


        PayloadBuilder payloadBuilder = APNS.newPayload();
        payloadBuilder.sound(sound);
        payloadBuilder.badge(badge);

        payloadBuilder.alertBody(alert);


        String payload = payloadBuilder.build();
                    service.push(token, payload);

    }
}

当我创建一个工作者并在线程池中执行它时:

ThreadPoolExecutor池=新ThreadPoolExecutor(corePoolSize、maximumPoolSize、keepAliveTime、TimeUnit.SECONDS、queue);

pool.execute(worker);

程序终止于:PayloadBuilder payloadBuilder = APNS.newPayload();没有任何错误或异常。但是,如果在以下情况下,它可以起作用:

PushWorker worker =新PushWorker(服务、令牌、警报、徽章、null);

worker.run();

我不知道为什么线程被终止在线程池中。有谁有同样的问题吗?

EN

回答 1

Stack Overflow用户

发布于 2012-03-14 09:23:07

试着使用

代码语言:javascript
复制
try {
    Future result = pool.submit(worker)
    result.get()

} catch (ExecutionException e) {
    // actual exception in e.getCause()
}

相反,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9698785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档