當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。