Lock API

Locks包 类层次结构

在这里插入图片描述

lock接口的方法和描述

方法签名描述
void lock();获取锁(不死不休)
boolean trylock();获取锁(浅尝辄止)
boolean tryLock(long time,TimeUnit unit) throws InterruptedException;获取锁(过时不候)
void lockInterruptibly() throws InterruptedException;获取锁(任人摆布)
void unlock();释放锁
Condition newCondition();可以把它看作一个监视器

condition常用的方法有:

  • Condition.await():线程挂起
  • Condition.signal():线程唤醒

结论:

  1. lock()最常用;
  2. lockInterruptibly()方法一般更昂贵,有的impl可能没有实现lockInterruptibly(),只有真的需要效应中断时,才使用,使用之前看看impl对该方法的描述。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WakeLock API 是 Web API 的一部分,它允许 Web 应用程序请求设备保持唤醒状态,从而防止设备进入休眠状态。WakeLock API 可以用于很多场景,比如音乐播放器、视频播放器、导航应用、游戏等需要保持设备唤醒的应用程序。 以下是使用 WakeLock API 的一些基本步骤: 1. 检查浏览器是否支持 WakeLock API: ```javascript if ('wakeLock' in navigator) { // 支持 WakeLock API } else { // 不支持 WakeLock API } ``` 2. 请求 WakeLock: ```javascript navigator.wakeLock.request('screen') .then(function(wakeLock) { console.log('WakeLock 已经被获取'); // WakeLock 对象可以用于解除 WakeLock }) .catch(function(error) { console.error('获取 WakeLock 失败:', error); }); ``` 上面代码中,`request()` 方法返回一个 Promise 对象,如果获取 WakeLock 成功,Promise 对象的 `then()` 方法会被调用,传入一个 WakeLock 对象;如果获取 WakeLock 失败,Promise 对象的 `catch()` 方法会被调用,传入一个 Error 对象。 3. 解除 WakeLock: ```javascript wakeLock.release() .then(function() { console.log('WakeLock 已经被解除'); }) .catch(function(error) { console.error('解除 WakeLock 失败:', error); }); ``` 上面代码中,`release()` 方法返回一个 Promise 对象,如果解除 WakeLock 成功,Promise 对象的 `then()` 方法会被调用;如果解除 WakeLock 失败,Promise 对象的 `catch()` 方法会被调用,传入一个 Error 对象。 需要注意的是,WakeLock API 会消耗设备电量,应该在不需要保持唤醒状态时尽快解除 WakeLock。此外,不同类型的 WakeLock 有不同的限制和行为,需要根据具体情况选择合适的 WakeLock 类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值