Atomics.isLockFree()
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2021å¹´12æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
Atomics.isLockFree() ã¯éçã¡ã½ããã§ã Atomics ã®ã¡ã½ããããè¦ç´ ã®ãã¤ãæ°ãæå®ããã大ããã§ããåä»ãé
åã«é©ç¨ãããå ´åãããã¯ã¾ãã¯ä¸å¯åã®ãã¼ãã¦ã§ã¢æä½ã使ç¨ãããã©ãããè¦æ¥µããããã«ä½¿ç¨ããã¾ããããã¯ãæé©åã®ããã®ããªããã£ãã¨ãã¦æå³ããã¦ããã髿§è½ã¢ã«ã´ãªãºã ããã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã§ããã¯ã使ç¨ããããä¸å¯åæä½ã使ç¨ããããæ±ºå®ã§ããããã«ããããã®ãã®ã§ããä¸å¯åããªããã£ããããã¯ããªã¼ã§ãªãå ´åãã¢ã«ã´ãªãºã ãèªåèªèº«ã§ããã¯ãæä¾ããæ¹ãå¹ççãªå ´åãå¤ãã§ãã
試ãã¦ã¿ã¾ããã
console.log(Atomics.isLockFree(3));
// 3 is not one of the BYTES_PER_ELEMENT values
// äºæ³ãããçµæ: false
console.log(Atomics.isLockFree(4));
// 4 is one of the BYTES_PER_ELEMENT values
// äºæ³ãããçµæ: true
æ§æ
Atomics.isLockFree(size)
弿°
size-
ãã§ãã¯ãããã¤ãåä½ã®å¤§ããã§ãã
è¿å¤
true ã¾ã㯠false ã§ãæä½ãããã¯ä¸è¦ã§ãããã©ããã示ãã¾ãã
sizeã 4 ã®å ´åã¯å¸¸ã«trueã§ããããã¯ããã¹ã¦ã®æ¢ç¥ã®ãã©ãããã©ã¼ã ã 4 ãã¤ãã®ä¸å¯åæä½ã«å¯¾å¿ãã¦ããããã§ãã- æå®ããã大ãããæ´æ°åã® TypedArray ã® BYTES_PER_ELEMENT ããããã£ã®ãããã§ããªãå ´åã¯ã常ã«
falseãè¿ãã¾ãã
ä¾
>isLockFree ã®ä½¿ç¨
Atomics.isLockFree(1); // true ï¼ãã©ãããã©ã¼ã ä¾åï¼
Atomics.isLockFree(2); // true ï¼ãã©ãããã©ã¼ã ä¾åï¼
Atomics.isLockFree(3); // false
Atomics.isLockFree(4); // true
Atomics.isLockFree(5); // false
Atomics.isLockFree(6); // false
Atomics.isLockFree(7); // false
Atomics.isLockFree(8); // true ï¼ãã©ãããã©ã¼ã ä¾åï¼
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-atomics.islockfree > |