当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript Atomics isLockFree()用法及代码示例


如果给定大小是整数 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 基本指南.



相关用法


注:本文由纯净天空筛选整理自Shubrodeep Banerjee大神的英文原创作品 JavaScript Atomics isLockFree() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。