如果给定大小是整数 TypedArray 类型的 BYTES_PER_ELEMENT 属性之一,Atomics.isLockFree() 操作返回 true,否则 Atomics.isLockFree() 操作返回 false。 lock-free 元素可以在不需要锁的情况下进行操作,并且用户不需要提供自己的锁定机制。
整数 TypedArray 的 BYTES_PER_ELEMENT 属性是什么?
- TypedArray.BYTES_PER_ELEMENT 属性表示类型化数组中每个元素的大小(以字节为单位)。
- 由于 TypedArray 对象在每个元素的字节数以及解释字节的方式方面彼此不同。
- BYTES_PER_ELEMENT 常量包含给定 TypedArray 中每个元素的字节数。
应用:
- Atomics.isLockFree() 用于检查操作是否是无锁的。
- 可用于验证整数TypedArray的BYTES_PER_ELEMENT属性
用法:
Atomics.isLockFree(size)
使用的参数:
- size:要检查的大小(以字节为单位)
返回值:Atomics.isLockFree() 返回布尔 true 表示操作是无锁的,否则返回 false。
下面提供了上述函数的示例.
Input : Atomics.isLockFree(5) Output : false
说明:在此示例中,“5” 作为参数发送到 Atomics.isLockFree() 方法,并且它返回 false,因为 “5” 不是 BYTES_PER_ELEMENT 值之一。
Input : Atomics.isLockFree(6) Output : false
说明:在此示例中,“6” 作为参数发送到 Atomics.isLockFree() 方法,并且它返回 false,因为 “6” 不是 BYTES_PER_ELEMENT 值之一。
Input : Atomics.isLockFree(2) Output : true
说明:在此示例中,“2” 作为参数发送到 Atomics.isLockFree() 方法,并且它返回 true,因为 “2” 是 BYTES_PER_ELEMENT 值之一。
Input : Atomics.isLockFree(4) Output : true
说明:在此示例中,“4” 作为参数发送到 Atomics.isLockFree() 方法,并且它返回 true,因为 “4” 是 BYTES_PER_ELEMENT 值之一。
下面提供了上述函数的示例。
示例 1:
javascript
// Displaying the return value of the
// Atomics.isLockFree() method
console.log(Atomics.isLockFree(5));
// Atomics.isLockFree() will return false since
// 5 is not one of the BYTES_PER_ELEMENT values
输出:
false
示例 2:
javascript
// Displaying the return value of
// the Atomics.isLockFree() method
console.log(Atomics.isLockFree(6));
// Atomics.isLockFree() will return false since 6
// is not one of the BYTES_PER_ELEMENT values
输出:
false
示例 3:
javascript
// Displaying the return value
// of the Atomics.isLockFree() method
console.log(Atomics.isLockFree(2));
// Atomics.isLockFree() will return true since
// 2 is one of the BYTES_PER_ELEMENT values
输出:
true
示例4:
javascript
// Displaying the return value of the
// Atomics.isLockFree() method
console.log(Atomics.isLockFree(4));
// Atomics.isLockFree() will return true since
// 4 is one of the BYTES_PER_ELEMENT values
输出:
true
应用:每当我们想要检查某个操作是否为 lock-free 或想要验证整数 TypedArray 的 BYTES_PER_ELEMENT 属性时,我们都会在 JavaScript 中使用 Atomics.isLockFree() 操作。
例子:
javascript
// Displaying the return value of
// the Atomics.isLockFree() method
console.log(Atomics.isLockFree(8));
// Atomics.isLockFree() will return true since 8
// is one of the BYTES_PER_ELEMENT(Float64Array) values
输出:
true
异常:
- 如果 typedArray 不是允许的整数类型之一,则 Atomics.isLockFree( ) 操作会抛出 TypeError。
- 如果 typedArray 不是共享类型数组,则 Atomics.isLockFree( ) 操作会抛出 TypeError。
支持的浏览器:
- 谷歌浏览器
- 微软边
- Firefox
- Opera
- Safari
我们有 Javascript 原子方法的完整列表,要检查这些方法,请阅读这篇JavaScript Atomics Complete Reference 文章。
我们有一份关于 Javascript 的备忘单,其中涵盖了 Javascript 的所有重要主题,请查看这些主题Javascript Cheat Sheet-A JavaScript 基本指南.
相关用法
- JavaScript Atomics add()用法及代码示例
- JavaScript Atomics xor()用法及代码示例
- JavaScript Atomics store()用法及代码示例
- JavaScript Atomics compareExchange()用法及代码示例
- JavaScript Atomics exchange()用法及代码示例
- JavaScript Atomics or()用法及代码示例
- JavaScript Atomics load()用法及代码示例
- JavaScript Atomics waitAsync()用法及代码示例
- JavaScript Atomics sub()用法及代码示例
- JavaScript Atomics and()用法及代码示例
- JavaScript Atomics.add()用法及代码示例
- JavaScript Atomics.and()用法及代码示例
- JavaScript Atomics.or()用法及代码示例
- JavaScript Atomics.isLockFree()用法及代码示例
- JavaScript Atomics.load()用法及代码示例
- JavaScript Atomics.store()用法及代码示例
- JavaScript Atomics.sub()用法及代码示例
- JavaScript Atomics.xor()用法及代码示例
- JavaScript Array length用法及代码示例
- JavaScript Array reverse()用法及代码示例
- JavaScript Array sort()用法及代码示例
- JavaScript Array fill()用法及代码示例
- JavaScript Array join()用法及代码示例
- JavaScript Array toString()用法及代码示例
- JavaScript Array pop()用法及代码示例
注:本文由纯净天空筛选整理自Shubrodeep Banerjee大神的英文原创作品 JavaScript Atomics isLockFree() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。