JUnit测试ReentrantLock

问题描述 投票:0回答:1

我可以在为以下代码块中的锁编写 Junit 测试时使用一些帮助

public class GoogleDriveService {
      private final Lock lock = new ReentrantLock();

      protected String createFolder(final List<String> parents, final String folderName) throws IOException {
        lock.lock();
        try {
            File fileMetadata = new File();
            fileMetadata.setName(folderName);
            fileMetadata.setParents(parents);
            fileMetadata.setMimeType(FOLDER_MIME_TYPE);

            File file = googleDriveClient.files().create(fileMetadata).setFields("id").execute();
            return file.getId();
        } finally {
            lock.unlock();
        }
    }
}
java concurrency
1个回答
0
投票

使用锁时没有任何问题。例如,如果CreateFolder方法出现异常,锁可能无法释放,从而导致死锁。因此,建议您使用“try-finally”块来确保锁的释放。

© www.soinside.com 2019 - 2024. All rights reserved.