当在asyncTask中工作时,同步块无法获取密钥时会发生什么?

时间:2016-12-29 19:21:24

标签: android multithreading android-asynctask android-camera

我在onPreviewFrame函数中有一个同步块。原因是我为两个不同的相机对象设置了两个预览回调,我需要同时使用onPreviewFrame功能。由于onPreviewFrame函数是一个非同步函数,我想知道当onPreviewFrame函数内的同步块无法获取密钥时会发生什么? onPreviewFrame功能是否被阻止,或者只是跳过同步块?我的代码看起来像这样:

        @Override
        public void onPreviewFrame(byte[] data, Camera camera) {
            synchronized (key) {
                 //some code here                   
            }

        }

1 个答案:

答案 0 :(得分:3)

线程将阻塞,直到它可以获取密钥(更准确地说,直到它可以进入与密钥相关联的监视器)。