java线程同步之CountDownLatch的使用

该代码段展示了在Android系统中如何使用CountDownLatch和RemoteCallback来执行dumpHeap操作。当heapdump完成后,CountDownLatch的countDown()方法被调用,然后在await()方法中等待操作完成。如果dumpHeap失败,会打印错误信息并返回-1。整个过程包含异常中断的处理。
摘要由CSDN通过智能技术生成

使用流程:

final CountDownLatch latch = new CountDownLatch(1);
latch.countDown();
latch.await();

 final CountDownLatch latch = new CountDownLatch(1);

        final RemoteCallback finishCallback = new RemoteCallback(new OnResultListener() {
            @Override
            public void onResult(Bundle result) {
                latch.countDown();
            }
        }, null);

        if (!mInterface.dumpHeap(process, userId, managed, mallocInfo, runGc, heapFile, fd,
                finishCallback)) {
            err.println("HEAP DUMP FAILED on process " + process);
            return -1;
        }
        pw.println("Waiting for dump to finish...");
        pw.flush();
        try {
            latch.await();
        } catch (InterruptedException e) {
            err.println("Caught InterruptedException");
        }

来源: com.android.server.am.ActivityManagerShellCommand#runDumpHeap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值