У багатокористувацькій спільній системі кілька користувачів, які працюють з одними й тими ж даними, можуть призводити до неузгодженості даних, тому операції блокування потрібні в одночасних операціях для контролю одночасного виконання транзакцій.
Спільний замок:Як видно з назви, блокування можна поділити, операція запису не повинна бути спільною, як тільки спільні дані записуються випадково, «блокування» не існує, тому спільне блокування — це операція читання «спільне», тобто блокування більше не можна записувати після додавання цього блокування, але його можна читати, його також можна називати блокуванням лише для читання.
Ексклюзивні замки:Ексклюзивний замок більш домінуючий, поки я додаю цей замок, інші операції не можуть бути виконані, чому? Оскільки я хочу змінити дані, оскільки я хочу їх змінити, я не повинен дозволяти іншим змінювати їх знову, і не повинен додавати блокування лише для читання, бо з блокуванням лише для читання я не можу виконувати операції запису.
Наприклад, якщо транзакція T1 додає спільний замок до даних D1, а транзакції T2 і T3 додають ексклюзивні блокування до даних D2 і D3 відповідно, то транзакція T1 додає спільний замок до даних (51). Дані про пару транзакцій T2 (52).
(51) Відповідь: D
A. D2 і D3 плюс замок успішні B. D2, D3 плюс спільний замок успішні C. D2 плюс спільний блокування успішно, D3 додає, блокування не дає D. D2, D3 плюс ексклюзивні та спільні замки всі не справляються
(52) Відповідь: C
A. D1, D3 плюс спільний замок усі не справлялися B. D1, D3 плюс спільний замок успішні C. D1 плюс спільний замок вдалося, D3 додав ще один замок не справлявся D. D1 плюс замок спрацювали, а D3 не додав спільний замок
Якщо є спільний замок, ви можете додати спільний замок, але не можете додати ексклюзивний замок. Якщо існує ексклюзивний замок, то ні спільний, ні ексклюзивний замок не можуть бути додані.
|