进程/线程
huaxun66
这个作者很懒,什么都没留下…
展开
-
Java8新的异步编程方式CompletableFuture
Java并发编程(一)线程创建、生命周期、控制这篇文章我们提到过Future可以实现异步编程,但是Future模式有自己的缺点:Future虽然可以实现获取异步执行结果的需求,但是它没有提供通知的机制,我们无法得知Future什么时候完成。要么使用阻塞,在future.get()的地方等待future返回的结果,这时又变成同步操作。要么使用isDone()轮询地判断Future是否完成,这样...原创 2019-11-30 16:08:33 · 6561 阅读 · 0 评论 -
Android HandlerThread全面解析
在之前的一篇博客Android 异步消息处理机制:Looper、Handler、Message中,我们讲解了Looper、Handler、Message三者的关系。实际开发中我们使用的Looper基本都是定义在UI线程中,在子线程中通过handler.post(new Runnable())可以在UI线程中更新界面,这其实是UI线程在默默的为我们服务。 其实我们完全可以借鉴UI线程Looper的思原创 2016-10-17 21:35:00 · 1903 阅读 · 0 评论 -
Android AsyncTask解析
我们都知道,Android UI是线程不安全的,如果想要在子线程里进行UI操作,就需要借助Android的异步消息处理机制,参考之前一篇文章Android 异步消息处理机制:Looper、Handler、Message。但是费时的任务操作总会启动一些匿名的子线程,太多的子线程会给系统带来巨大的负担,随之带来一些性能问题。因此Android提供了一个工具类AsyncTask,顾名思义异步执行任务,使用原创 2016-09-02 22:44:49 · 1823 阅读 · 0 评论 -
Android实现双进程守护
如何保证Service不被Kill有关Service的知识请参考Android Service全面解析这篇文章,写的很详细。(1)onStartCommand方法,返回START_STICKY@Override public int onStartCommand(Intent intent, int flags, int startId) { flags = START_STICKY原创 2016-11-14 13:44:59 · 14613 阅读 · 2 评论 -
Android 异步消息处理机制:Looper、Handler、Message
我们都知道,Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序会发生崩溃。解决方法相信大家都用过无数次了:创建一个Message对象,然后借助Handler发送出去,之后在Handler的handleMessage()方法中获得刚才发送的Message对象,然后在这里进行UI操作就不会再出现崩溃了。这种处理方式被称为异步消息处理线程。 Handler 、 Looper 、Me原创 2016-09-01 22:26:12 · 1035 阅读 · 0 评论