ป้องกันการเข้าถึงส่วนต่างๆ ของโค้ดพร้อมกัน ซึ่งจะมีประโยชน์ในกรณีที่คุณมีผู้ใช้หลายคนหรือกำลังดำเนินการแก้ไขทรัพยากรที่ใช้ร่วมกันและต้องการป้องกันการชนกัน
วิธีการ
วิธีการ | ประเภทการแสดงผล | รายละเอียดแบบย่อ |
---|---|---|
getDocumentLock() | Lock | รับการล็อกที่ป้องกันไม่ให้ผู้ใช้เอกสารปัจจุบันเรียกใช้ส่วนของโค้ดพร้อมกัน |
getScriptLock() | Lock | รับการล็อกที่ป้องกันไม่ให้ผู้ใช้เรียกใช้ส่วนของโค้ดพร้อมกัน |
getUserLock() | Lock | รับการล็อกที่ป้องกันไม่ให้ผู้ใช้ปัจจุบันเรียกใช้ส่วนของโค้ดพร้อมกัน |
เอกสารประกอบโดยละเอียด
getDocumentLock()
รับการล็อกที่ป้องกันไม่ให้ผู้ใช้เอกสารปัจจุบันเรียกใช้ส่วนของโค้ดพร้อมกัน ส่วนของโค้ดที่ป้องกันโดยการล็อกเอกสารสามารถดำเนินการพร้อมกันได้โดยอินสแตนซ์สคริปต์ที่ทำงานในบริบทของเอกสารที่แตกต่างกัน แต่จะดำเนินการได้ไม่เกิน 1 การดำเนินการสำหรับเอกสารที่ระบุ โปรดทราบว่าจะยังไม่ได้ล็อกจริงจนกว่าจะมีการเรียกใช้ Lock.tryLock(timeoutInMillis)
หรือ Lock.waitLock(timeoutInMillis)
หากมีการเรียกเมธอดนี้นอกบริบทของเอกสารที่มี (เช่น จากสคริปต์หรือเว็บแอปแบบสแตนด์อโลน) ระบบจะแสดงผล null
รีเทิร์น
Lock
- ล็อกที่กำหนดขอบเขตเป็นสคริปต์และเอกสารปัจจุบัน หรือ null
หากเรียกใช้จากสคริปต์แบบสแตนด์อโลนหรือเว็บแอป
getScriptLock()
รับการล็อกที่ป้องกันไม่ให้ผู้ใช้เรียกใช้ส่วนของโค้ดพร้อมกัน ส่วนของโค้ดที่ป้องกันโดยล็อกสคริปต์จะเรียกใช้พร้อมกันไม่ได้ไม่ว่าข้อมูลระบุตัวตนของผู้ใช้จะเป็นใครก็ตาม โปรดทราบว่าจะยังไม่ได้ล็อกจริงจนกว่าจะมีการเรียกใช้ Lock.tryLock(timeoutInMillis)
หรือ Lock.waitLock(timeoutInMillis)
รีเทิร์น
Lock
— ล็อกที่กำหนดขอบเขตเป็นสคริปต์
getUserLock()
รับการล็อกที่ป้องกันไม่ให้ผู้ใช้ปัจจุบันเรียกใช้ส่วนของโค้ดพร้อมกัน ส่วนโค้ดที่ล็อกผู้ใช้ไว้จะเรียกใช้พร้อมกันโดยผู้ใช้รายต่างๆ ได้ แต่ต้องไม่ดำเนินการมากกว่า 1 รายการสำหรับผู้ใช้หนึ่งๆ การล็อกจะเป็น "ส่วนตัว" สำหรับผู้ใช้ โปรดทราบว่าคุณจะไม่ได้รับการล็อกจริงๆ จนกว่าจะมีการเรียกใช้ Lock.tryLock(timeoutInMillis)
หรือ Lock.waitLock(timeoutInMillis)
รีเทิร์น
Lock
— ล็อกที่กำหนดขอบเขตเป็นสคริปต์และผู้ใช้ปัจจุบัน